我从一本书中学习角度,但我已经找到了一个似乎无法发挥作用的榜样。我有这个:
<div ng-repeat="note in ctrl.notes track by note.id">
{{note.$$hashKey}}
<span class="label"> {{note.label}}</span>
<span class="author" ng-bind="note.done"></span>
</div>
并在控制器中:
this.notes = [
{
id: 1,
label: 'Changed Note',
done: false,
someRandom: 4242
},
{
id: 2,
label: 'Second Note',
done: false
},
{
id: 3,
label: 'Finished Third Note',
done: true
}
];
问题在于没有note.id的跟踪它从3开始打印,但是当通过note.id添加轨道时,它应该由id打印...但是它不打印任何东西,它是空白,控制台中没有错误。这是正常行为还是我做错了什么?
答案 0 :(得分:0)
这很正常。 $$hashkey
是角度记住哪个对象与哪些html元素相关的方式。
使用“track by note.id”告诉angular“在这里,请改用它。我提供了notes
的集合,每个note
都有id
属性,它将是独一无二的。“当您使用跟踪表达式时,angular不需要$$hashkey
,因此它不会生成一个。{1}}。你的书可能是错误的,也可能是过时的。