将JSON格式的字符串数组转换为Angular中的真实JSON数组对象

时间:2016-03-02 12:33:37

标签: javascript arrays angularjs json web-services

我正在尝试向网络发送一个包含多个“对象”的JSON女巫(还没有真正的对象)。

这是我的阵列:

$scope.atributs = [];

当我点击按钮时,执行:

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

然后我有第二个按钮,当我点击它时会发生这种情况:

$scope.sendRow = function(){
                        var d = {
                                    'nomAtribut': 'Saab',
                                    'tipus': 'String',
                                    'mida': '15',
                                    'prioritat': '1',
                                    'obligatori': 'No'
                                };
                        $http.post("http://10.0.203.73/WS/ws.php/tipusactius/alta", angular.toJson(d)).success(function(data){
                            $scope.status = data;
                        })
                    }

为了测试,我发送一个单字符串JSON,将其转换为真正的JSON对象。这是我的第一个有角度的项目,我不确定我是否做得好吗?我应该怎么做?

此致

1 个答案:

答案 0 :(得分:0)

我举了一个简单的例子。

var app = angular.module("app",[]);

app.controller("MyCtrl" , function($scope){
  
   $scope.data ={
       atributs :[{
         nomAtribut: "",
         tipus: "",
         mida: "",
         prioritat: "",
         obligatori: "",
         observacions: ""}]
   };
  
  $scope.addRow = function(index){
    var row = {
         nomAtribut: "",
         tipus: "",
         mida: "",
         prioritat: "",
         obligatori: "",
         observacions: ""};
       if($scope.data.atributs.length <= index+1){
            $scope.data.atributs.splice(index+1,0,row);
        }
    };
  
  $scope.sendRow = function(){
     $http.post("http://10.0.203.73/WS/ws.php/tipusactius/alta",$scope.data).
         success(function(data){
                            $scope.status = data;
                        })
        }
    
  });
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="app" ng-controller="MyCtrl">
   <table>
     <tr ng-repeat="name in data.atributs track by $index">
        <td> <input type="text" ng-model="data.atributs[$index].nomAtribut"></td>
         <td> <input type="text" ng-model="data.atributs[$index].tipus"></td>
        <td> <input type="text" ng-model="data.atributs[$index].mida"></td>
        <br>
        <td> <input type="text" ng-model="data.atributs[$index].prioritat"></td>
         <td> <input type="text" ng-model="data.atributs[$index].obligatori"></td>
        <td> <input type="text" ng-model="data.atributs[$index].observacions"></td>
        <td> <input type="button" ng-click="addRow($index)" value="Add" ng-show="$last"></td>
     </tr>
   </table> 
    <span>{{data|json}}</span>
</div>