在控制器中,我有一个这样的列表:
scope.data = [ { user: { address: { city: 'Boston'} } } ];
还有一个属性,我可以使用该名称访问该对象:
scope.propertyName = 'user.address.city';
在HTML中,我进行了重复操作,我将动态输入用于编辑该值。
<div ng-repeat="item in data">
<input ng-model="item[propertyName]">
</div>
我的问题是:如何使用ng-model绑定项目的值?
答案 0 :(得分:1)
由于ng-repeat
:
<input ng-model="item.user.address.city" />
所以你不需要声明:
$scope.propertyName = 'address.city';
答案 1 :(得分:0)
您可以使用compile创建指令,以间接设置ng-model:
compile: function(el, attrs) {
return function(scope, el) {
el.attr('ng-model', attrs.ngModelItem + '.' + scope[attrs.ngModelRef]);
$compile(el)(scope);
};
}
请在jsbin上查看我的样本: