动态ng模型数据作为List / Array

时间:2015-07-31 08:17:31

标签: angularjs

我创建了一个带有input文本框的表单,其中包含动态生成的ng-model,如下所示:

 <div class="row">
         <div class="column">Tags:</div>
         <div class="column">
            <select data-ng-options="tag.id as tag.name for tag in Tags"
             data-ng-model="formData.Tag">
                            </select>
        </div>
 </div>
   <div data-ng-repeat="choice in choices">
    <div class="row">
            <div class="column">Result {{$index + 1}}:</div>
             <div class="column">
              <input type="text" data-ng-model="formData.Result[$index + 1]"
               placeholder="Result {{$index + 1}}"><span>
              <button data-ng-show="$last" data-ng-click="addAnother()">Add
                  another</button>
              </span>
            </div>
    </div>
</div>

在提交form时,我会将字段Result的数据作为下面的JSON获取:

{"Tag":"1","Result":{"1":"1", "2":"2"}}

我希望收集list/array,如:{"Tag":"1","Result":["1", "2"]}

的.js

myapp.controller(‘FormController', function($scope, $http) {
$scope.choices = [ {
    id : 'choice1'
} ];
$scope.addAnother = function() {
    var newItemNo = $scope.choices.length + 1;
    $scope.choices.push({
        'id' : 'choice' + newItemNo
    });
  };
    $scope.formData = {};
    $scope.submit = function() {
        $http({
            method : 'POST',
            url : ‘/Application/submit',
            dataType : 'json',
            headers : {
                'Content-Type' : 'application/json'
            },
            data : $scope.formData,
        });
        };
});

知道我该怎么做?

感谢。

1 个答案:

答案 0 :(得分:2)

因此,在您的控制器中初始化formData

$scope.formData = {
    Tag:"",
    Result: []
  };

并在视图中使用data-ng-model="formData.Result[$index]"代替data-ng-model="formData.Result[$index+1]"。 这是plnkr