动态ng模型值不适用于双向数据绑定
问题描述:
我对angular js非常陌生。动态ng模型值不适用于双向数据绑定
我使用动态字段。还有我需要创建动态NG-模型值类似领域lable.LabelID]这里lable.LabelID是动态值
,这是我的模板页面创建的形式
<form ng-submit="" ng-controller="saveOrder">
<table class="col-xs-12 col-sm-8 col-sm-offset-4">
<tr ng-repeat="lable in Grp.Label">
<td style="width:30%" class="no-wrap text-left col-xs-text-center text-primary">
<h4>{{lable.LabelName}}</h4>
</td>
<td style="width:60%" class="no-wrap text-left">
<input type="{{input_type[lable.InputType]}}"
name="{{lable.LabelID}}" ng-model="Field[lable.LabelID]"
ng-init="Field[lable.LabelID] = Field[lable.LabelID] || {}"/>
</td>
</tr>
</table>
和我的控制器就像是
productApp.controller('saveOrder',function($scope,$http)
{
$scope.FieldOptions = {};
$scope.createOrder = function()
{
alert("in");
console.log($scope);
console.log($scope.Field[1]);
console.log($scope.FieldOptions);
}
});
我服务器数据会像
{
"GroupName": "Order Form",
"Label": [
{
"InputType": "1",
"LabelID": "1",
"LabelName": "BillingDetails"
},
{
"InputType": "1",
"LabelID": "2",
"LabelName": "shipping Details"
}
]
}
对于场景我得到错误,如
TypeError: Cannot set property '1' of undefined
at Function.v.assign (http://ajax.googleapis.com/ajax/libs/angularjs/1.0.7/angular.min.js:73:162)
at http://ajax.googleapis.com/ajax/libs/angularjs/1.0.7/angular.min.js:72:33
at Object.e.$eval (http://ajax.googleapis.com/ajax/libs/angularjs/1.0.7/angular.min.js:88:347)
at pre (http://ajax.googleapis.com/ajax/libs/angularjs/1.0.7/angular.min.js:145:309)
at i (http://ajax.googleapis.com/ajax/libs/angularjs/1.0.7/angular.min.js:43:396)
at e (http://ajax.googleapis.com/ajax/libs/angularjs/1.0.7/angular.min.js:39:307)
at e (http://ajax.googleapis.com/ajax/libs/angularjs/1.0.7/angular.min.js:39:324)
at e (http://ajax.googleapis.com/ajax/libs/angularjs/1.0.7/angular.min.js:39:324)
at http://ajax.googleapis.com/ajax/libs/angularjs/1.0.7/angular.min.js:38:372
at Object.<anonymous> (http://ajax.googleapis.com/ajax/libs/angularjs/1.0.7/angular.min.js:148:122) <input type="{{input_type[lable.InputType]}}" name="{{lable.LabelID}}" ng-model="Field[lable.LabelID]" ng-init="Field[lable.LabelID] = Field[lable.LabelID] || {}" class="ng-pristine ng-valid">
这些类型的问题,我发现很多这样。但我无法为我的方案找出解决方案。请帮我解决这个问题...
任何类型的帮助是可观的。
答
尝试在控制器内设置$scope.Field = [];
并删除ng-init
指令。在您当前的代码中,编译发生时$scope.Field
正在变得未定义。
你在哪里设置你的Grp.Label? – mfrachet 2014-12-19 06:47:53
我收到来自服务器调用所有这些数据,如以这种形式{ “组名”:“订单式”, “标签”: { “的inputType”:“1”, “LabelID”:“1” , “标签”: “BillingDetails” }, { “的inputType”: “1”, “LabelID”: “2”, “标签”: “送货细节” } ] } – venkatesh 2014-12-19 06:51:27
你有没有尝试在控制器中设置'$ scope.Field = [];'并删除ng-init指令? – 2014-12-19 07:04:52