我很难理解angularjs中ng-repeat表达式的 轨迹是 如何工作的。该文档非常稀缺:http : //docs.angularjs.org/api/ng/directive/ngRepeat
您能解释一下这两个代码片段在 数据绑定 和其他相关方面的区别吗?
与: track by $index
track by $index
<!--names is an array--> <div ng-repeat="(key, value) in names track by $index"> <input ng-model="value[key]"> </div>
没有(相同的输出)
<!--names is an array--> <div ng-repeat="(key, value) in names"> <input ng-model="value[key]"> </div>
你可以track by $index,如果您的数据源中有重复的识别码
例如: $scope.dataSource: [{id:1,name:'one'}, {id:1,name:'one too'}, {id:2,name:'two'}]
$scope.dataSource: [{id:1,name:'one'}, {id:1,name:'one too'}, {id:2,name:'two'}]
使用“ id”作为标识符时,您不能迭代此集合(重复的id:1)。
不会工作:
<element ng-repeat="item.id as item.name for item in dataSource"> // something with item ... </element>
但是可以,如果使用track by $index:
<element ng-repeat="item in dataSource track by $index"> // something with item ... </element>