2015-06-07 2 views
0

я иметь такую ​​форму:Angularjs форма не посылает значение

<form> 
      <select class="browser-default" ng-model="TAV"> 
      <option value="11">11</option> 
      <option value="12">12</option> 
      <option value="13">13</option> 
      <option value="14">14</option> 
      <option value="15">15</option> 
      <option value="16">16</option> 
      </select> 

      <select class="browser-default" ng-model="COP"> 
      <option value="01">1</option> 
      <option value="02">2</option> 
      <option value="03">3</option> 
      <option value="04">4</option> 
      <option value="05">5</option> 
      </select> 
     <button class="btn-large modal-action waves-effect" ng-click="creaCOM('AMA')">AMARANTA</button> 
     <button class="btn-large modal-action waves-effect" ng-click="creaCOM('FED')">FEDERICO</button> 
    </form> 

И это мой контроллер:

$scope.creaCOM = function(came) { 
     var c = came; 
     $http.post('/gest/include/inserisci_comanda.asp?came='+c+'&COP='+$scope.COP+'&TAV='+$scope.TAV) 
      .success(function(){....}) 
      .error(function(){....}) 
}; 

Почему не форма отправки любое значение (для с значение, называемое исключением по ng-click!). Я хочу использовать кнопку для отправки формы!

+0

Пробовали ли вы с 'нг-option'? – Mik378

+1

Не имеет смысла использовать параметры URL для запроса 'post'. Должен быть передан объект как второй аргумент '$ http.post()' вместо – charlietfl

+0

Сообщение работает на угловой стороне, как видно из консоли: POST gest/include/inserisci_comanda.asp? Пришел = AMA & COP = 02 & TAV = 11 400 (Плохо Request) Так должно быть что-то еще – ABOS

ответ

-1

Указывает ли ваше значение области видимости для TAV и COP в контроллере ?. Normall, метод POST вызывается только в форме submit, и он отправляет все данные в URL.

0

Вы должны связать свою creaCOM функцию атрибута нг-представить в <form> элемента, как:

<form 
    ng-submit="creaCOM()"> 
... 
</form> 

Кроме того, не пытается передать значения формы с помощью аргументов функции. Используйте определенные переменные ng-model. В вашем случае, я хотел бы сделать:

<form ng-submit="creaCOM()"> 
      <select class="browser-default" ng-model="TAV"> 
      <option value="11">11</option> 
      <option value="12">12</option> 
      <option value="13">13</option> 
      <option value="14">14</option> 
      <option value="15">15</option> 
      <option value="16">16</option> 
      </select> 

      <select class="browser-default" ng-model="COP"> 
      <option value="01">1</option> 
      <option value="02">2</option> 
      <option value="03">3</option> 
      <option value="04">4</option> 
      <option value="05">5</option> 
      </select> 

      <select class="browser-default" ng-model="CAME"> 
       <option value="AMA">Amaranta</option> 
       <option value="FED">Federico</option> 
      </select> 

     <button class="btn-large modal-action waves-effect" type="submit">Submit</button> 
    </form> 

И в контроллере (я сделал некоторые изменения, уважая, что вы вызываете метод POST):

$scope.creaCOM = function() { 
     var postObj = { 
       came: $scope.CAME, 
       COP: $scope.COP, 
       TAV: $scope.TAV 
      }; 
     $http.post('/gest/include/inserisci_comanda.asp', postObj). 
      success(function(data, status, headers, config) { 
      ... 
      }). 
      error(function(data, status, headers, config) { 
      ... 
      }); 
    }; 

Это только проект кодекса и намек моя сторона.

+0

Зачем нужна ng-submit? Это просто альтернатива. – Mik378

+0

Конечно, нет необходимости использовать ng-submit, это единственное популярное соглашение. С другой стороны, зачем использовать тег

без намерения его отправить? :) –

+1

Вы можете прочитать эти обе страницы: https://books.google.fr/books?id=mZXjwz5X08EC&pg=PT313&lpg=PT313&dq=using+ng-submit+to+handle+form+submissions+mastering&source=bl&ots=T5B_TXV9T- & sig = gglBpNtPFkG-YdDWwbdPSJBfH_M & hl = en & sa = X & ei = DzB0Veq8EMavU4KEgIAC & redir_esc = y # v = onepage & q = using% 20ng-submit% 20to% 20handle% 20form% 20summissions% 20mastering & f = false Это хорошо объясняет разницу в тонлах между ng-submit и кнопкой. – Mik378

0

Хорошо, я решил. Итак:

<button class="btn-large modal-action waves-effect" ng-click="creaCOM(reg.COP,'AMA')">AMARANTA</button> 
    <button class="btn-large modal-action waves-effect" ng-click="creaCOM(reg.COP,'FED')">FEDERICO</button> 

, а затем установить этот контроллер:

$scope.creaCOM = function(cop, cam) {....} 

Это прекрасно работает