是否有一种很好的方法可以将track by
ng-repeat
功能用于可编辑列表,即用户可以删除和添加项目的列表?
现有对象已分配唯一ID,而缺少ID是我在表单提交时创建该项目的标记。
只要用户只将元素添加到列表中,使用track by $index
就会起作用。
只要用户只删除或更改列表中的项目,就可以使用track by myId
。
我能看到实现该行为的唯一方法是将临时随机ID分配给每个新项的属性,并使用scope方法返回实际ID或临时ID,无论存在什么。看起来不那么优雅......
我可以想象这是一个相当常见的用例,有更优雅的方法来处理这个吗?
答案 0 :(得分:0)
我经常在我的模型中添加一个属性cid
(client-id)。我在获取模型或创建新模型时分配属性,以便每个模型都有cid
。然后我可以做类似的事情:
<ul>
<li ng-repeat="for item in list track by item.cid">{{ item.name }}</li>
</ul>
答案 1 :(得分:0)
试试这个:
item in items track by $id(item)