Angular跟踪的hashKey不打印

时间:2015-05-12 07:28:25

标签: angularjs

我从一本书中学习角度,但我已经找到了一个似乎无法发挥作用的榜样。我有这个:

<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打印...但是它不打印任何东西,它是空白,控制台中没有错误。这是正常行为还是我做错了什么?

笔:http://codepen.io/vandervals/pen/EjPeML

1 个答案:

答案 0 :(得分:0)

这很正常。 $$hashkey是角度记住哪个对象与哪些html元素相关的方式。

使用“track by note.id”告诉angular“在这里,请改用它。我提供了notes的集合,每个note都有id属性,它将是独一无二的。“当您使用跟踪表达式时,angular不需要$$hashkey,因此它不会生成一个。{1}}。你的书可能是错误的,也可能是过时的。