Angularjs не публиковать скрытые значения

0

Я делаю вызов $http.post, но мои скрытые поля не отправляются с формой.

Код:

         <sf:form ng-submit="post(form)" id="respond" >
          <input type="hidden"name="form.replyTo"  ng-model="replyTo" ng-value="1">
          <input type="hidden"  name="form.id" ng-model="id" ng-value="33" >

              <input class="diskafield" type="text" ng-model="form.name" >

              <input class="diskafield" type="text" ng-model="form.email" >

              <textarea class="diskafield" name="comments" ng-model="form.body"  required=""></textarea>

              <input class="diskabtn" type="button" ng-click="post(form)" value="Post Comment">
          </div>
      </sf:form>

и мой контроллер:

      app.controller('AddCommentController', function ($scope, $http) {

    $scope.name="";
    $scope.email="";
    $scope.body="";
    $scope.id = "";
    $scope.replyTo = '';
    $scope.post= function(form) {
        $http.post('http://localhost:8080/add', form).success(function(response){
        }).error(function(response){
            console.log(response);
        })
    }
});

1 ответ

4

ваш объект form публикации так, если вам нужно прикрепить скрытые свойства к этому объекту form,

<input type="hidden"name="form.replyTo"  ng-model="form.replyTo" ng-value="1">
<input type="hidden"  name="form.id" ng-model="form.id" ng-value="33" >

вам нужно изменить модель на form.replyTo и form.id как указано выше.

и кажется, что вы пропустите, используйте ng-model и name,

например:

вы $scope.name

и вы используете его в форме как имя элемента.

что нет способа использовать его, здесь нет никакой связи между переменными области видимости и именами ввода.

которые должны относиться к ng-model.

так должен выглядеть чистый пример.

$scope.form = {
    name : "",
    email : "",
    body : "",
    id : 33,
    replyTo : 1
};

$scope.post= function(form) {
    $http.post('http://localhost:8080/add', form).success(function(response){
    }).error(function(response){
        console.log(response);
    })
}


<sf:form ng-submit="post(form)" id="respond" >
      <input type="hidden"name="form.replyTo"  ng-model="form.replyTo">
      <input type="hidden"  name="form.id" ng-model="form.id" >

          <input class="diskafield" type="text" ng-model="form.name" >

          <input class="diskafield" type="text" ng-model="form.email" >

          <textarea class="diskafield" name="comments" ng-model="form.body"  required=""></textarea>

          <input class="diskabtn" type="button" ng-click="post(form)" value="Post Comment">
      </div>
  </sf:form>

на самом деле вы можете удалить два скрытых поля, поскольку данные скрытого поля существуют в объекте $scope.form.

здесь работает DEMO

  • 1
    Похоже, он просто перепутал "имя" и "модель нг".
  • 0
    @ K.Toress Я перехожу на ng-model = "form.replyTo", но пока не работаю.
Показать ещё 3 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню