AngularJS与$$hashkey的比较

6
我正在尝试将重复器中包含的对象与刚从服务器返回的对象进行比较。
由于重复的对象包含 hashkey 属性,因此 angular.equals 评估为 false。
我想我可以只删除该属性,但我不知道是否有一种 Angular 的方法来处理这个问题。
谢谢。

7
你确定这些对象是等价的吗?angular.equals函数在属性比较时会忽略函数类型的属性和以$符号开头的属性。 - dting
嗯,应该是这样的。我先保存父对象,然后再比较两个子对象。我会再仔细检查一下,谢谢。 - Marco
1个回答

7

有一种 Angular 的方式来处理这个问题。你需要通过每一个对象拥有的唯一字段进行跟踪。例如,不要使用以下写法:

item in items

Do:

item in items track by item.id

请查看Angular关于ngRepeat和$$hasKey的文档。


1
Idea angular.equals 应该忽略 $$hashKey,但在我的情况下它没有。我有一个对象与 ng-repeat 绑定,另一个对象是从服务器接收的。两者都相同,除了 $$hashKey,但 angular.equals 总是返回 false。如果我从 ng-repeat 中删除绑定,angular.equals 就会评估为 true。 - Microsoft Developer
@Marco 这个回答解决了你的问题吗? - Cumulo Nimbus

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接