2015-06-25 3 views
0

Я делаю $http.post call, но мои скрытые поля не публикуются с формой.Angularjs не оставлять скрытую информацию

Код:

  <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); 
     }) 
    } 
}); 
+0

все формы поля ввода будут представлены, то, как формы работают, просто игнорировать значение, которое вы не хотите ... – DrCord

+1

я думаю, что его английский просто плохо, а на самом деле ищет, почему он не публикует. – Xogle

+0

Просто поменять 'name =" form.replyTo "ng-model =" replyTo "' –

ответ

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

Похоже, он просто перепутал «имя» и «нг-модель». – Xogle

+0

@ K.Toress i change to ng-model = "form.replyTo", но пока не работает. –

+0

@ K. Поверните, я вставляю ваш код, но не работаю снова. зачем отправлять другие данные, но не скрывать ввод? –