Angularjs形式不会发送值

时间:2015-06-07 11:14:17

标签: 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调用的c值除外)。 我想用按钮发送表格!

3 个答案:

答案 0 :(得分:0)

您应该将creaCOM函数绑定到<form>元素的ng-submit属性,例如:

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

此外,不要尝试通过函数参数传递表单值。使用定义的ng模型变量。在你的情况下,我会这样做:

  <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) {
            ...
          });
    };

这只是代码草案和我身边的提示。

答案 1 :(得分: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) {....}

这很好用

答案 2 :(得分:-1)

是否在控制器中声明了TAV和COP的范围值? Normall,POST方法仅在表单提交中调用,它将所有数据发布到URL。