如何使用多个对象创建来保持动态ng模型

时间:2016-09-30 09:53:38

标签: angularjs

我从服务器获取html,我在视图中使用ng-repeat生成html,如下所示



<div class="col-lg-6"  ng-repeat="controls in steps.infos">
	<input type="text" ng-model="formData[controls.id]">
</div>
&#13;
&#13;
&#13;

在我的controller我已声明变量$scope.formData = {};。一切正常。但在这里,我想创建动态新ng-model,以创建新的object。任何人都可以通过在视图中设置动态ng模型来帮助我创建多个对象,例如 - ng-model="formData.{{$index}}[controls.id]"。我想使用ng-model动态生成以下JSON格式。有可能吗?

{
   "0":{
      "5":"sdfasf"
   },
   "1":{
      "7":"sdfasf"
   }
}

先谢谢

1 个答案:

答案 0 :(得分:1)

试试这个

ng-model="formData['field_' + $index]"

如果你嵌套循环,你可以做类似的事情。

ng-model="formData[$parent.$index]['field_' + $index]"

在您的情况下,这可能会对您有所帮助。

ng-model="formData[$index][controls.id]"

var myApp = angular.module('myApp',[]);

myApp.controller('GreetingController', ['$scope', function($scope) {
  $scope.home = {parent: {}};
  $scope.objectsList = [{
                'id':1,
                'name': 'Vikram',
                'Age': '25',
                'sex': 'M'
            }, {
                'id':2,
                'name': 'Quantum',
                'Age': '26',
                'sex': 'F'
            }, {
                'id':3,
                'name': 'Katty',
                'Age': '22',
                'sex': 'F'
            }];
  $scope.getJson = function(home){
    console.log(home);
  }
}]);
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<body  ng-app="myApp">
<div ng-controller="GreetingController">
<p ng-repeat="obj in objectsList">
    1st textbox<input type="text" ng-model="home.parent[$index][obj.id]" value="" />
  
  2nd textbox<input type="text" ng-model="home.parent[$index][obj.name]" value="" />
  
  <br/><br/>
</p>
  <button ng-click="getJson(home)">Get Json Object</button>
  {{parent}}
</div>
</body>