如何解决使用 ng-repeat 和 $index 设置模型属性
我可以使用 ng-repeat 和 $index 动态设置模型属性吗?
我正在尝试做这样的事情:
<div ng-repeat="x in [].constructor(10) track by $index">
<input ng-model="model.prop{{$index}}">
</div>
我希望我的模型最终像这样(即控制器代码中不存在这些属性,我希望它们被动态添加):
{
"prop0": "val","prop1": "val","prop2": "val","prop3": "val","prop4": "val",...
"prop10": "val"
"otherProperty": "xxx"
}
我不希望属性是一个数组,我需要在不更改控制器的情况下执行此操作。
谢谢
解决方法
您可以在指令 ng-repeat
中迭代对象(键、值)
控制器
$scope.props = {
"prop0": "val","prop1": "val","prop2": "val","prop3": "val","prop4": "val",...
"prop10": "val"
}
HTML:
<div ng-repeat="(key,value) in props">
<input ng-model="props[key]">
</div>
在某些情况下,您应该避免使用 track by $index
,请检查 AngularJs 文档中的 Tracking and Duplicates 和 StackOverflow 上的 When not to use 'track by $index' in an AngularJS ng-repeat?。
排序,我是这样做的:
<div ng-repeat="x in [].constructor(10) track by $index">
<input ng-model="model.['prop' + ($index)]">
</div>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。