问题从Angular上的数组发送JSON到Web服务

时间:2016-03-03 10:58:29

标签: javascript angularjs json web-services

我有一张桌子。行表的每个单元格都是表单字段。另外,我有两个按钮:一个按钮向表中添加一个新行,另一个按钮发送所有行。

这是为了添加新的空白行:

$scope.atributs =[];

$scope.addRow = function(){
     var newRow = {nomAtribut: "",tipus: "",mida: "",prioritat: "",obligatori: "",observacions: ""};
$scope.atributs.push(newRow);
                        }

查看:

    <table class="table">
            <tr>
               <td>Nom atribut</td>
                <td>Tipus</td>
                <td>Mida</td>
                <td>Prioritat</td>
                <td>Obligatori</td>
                <td>Observacions</td>
              </tr>
              <tr ng-repeat="atribut in atributs">
                 <td><input type="text" ng-model="atribut.nomAtribut" /> </td>
                 <td>
                   <select ng-options="option as option.valor for option in options" ng-model="atribut.tipus"></select>
                 </td>
                 <td><input type="number" ng-model="atribut.mida" /></td>  
                 <td>
                     <select ng-options="option as option.valor for option in options" ng-model="atribut.tipus"></select>
                  </td>
                  <td><input type="checkbox" ng-model="atribut.obligatori" ng-true-value="'YES'" ng-false-value="'NO'"></td>
                  <td><input type="text" ng-model="atribut.observacions" /> </td>
                </tr>
   </table>

用于将数据发送到Web服务的Angular Code: -

$scope.sendRow = function(){
 $http.post("http://10.0.203.73/WS/ws.php/tipusactius/alta", $scope.atributs).success(function(data){
                        $scope.status = data;
                    })
                }

Json数组发送: -

 [{"nomAtribut":"j",
 "tipus":{"idvalors_combo":"3","valor":"Date"},
  "mida":11,"prioritat":"",
  "obligatori":"YES",
  "observacions":"fcefwq"}]

一切正确,问题来自网络服务?或角度代码错了?这是我第一次使用棱角分明的尝试。谢谢。

1 个答案:

答案 0 :(得分:0)

因此,您的Web服务看起来一次只需要数据阵列中的单个元素。

我认为您应该修改sendRow函数以获取要发送的行索引,如下所示:

$scope.sendRow = function(atributRow){
 $http.post("http://10.0.203.73/WS/ws.php/tipusactius/alta", atributRow).success(function(data){
                        $scope.status = data;
                    })
                }

然后,您可以通过以下方式发送循环中的所有行:

angular.forEach($scope.atributs, $scope.sendRow);

或具有特定索引的单行:

$scope.sendRow($scope.atributs[0])