在角的模板中遍历一个集合(集合)的时候你会这样写:
& lt; ul> & lt;李* ngFor=叭檬占钅俊痹趝{item.id}} & lt;/li> & lt;/ul>
有时你会需要改变这个集合,比如从后端接口返回了新的数据,那么问题来了,角不知道怎么跟踪这个集合里面的项,不知道哪些该添加哪些该修改哪些该删除。结果就是,角会把该集合里的项全部移除然后重新添加。就像这样:
从“@angular进口{组件}/核心”; @ component ({ 选择器:“trackBy-test”, 模板: & lt; ul> & lt;李* ngFor=叭梦锲返奈锲?trackBy: trackByIndex”在{{item.name}} & lt;/li> & lt;/ul> & lt;按钮(点击)=" getItems()在得到Items ” }) 出口类TrackByCmp { 项目:任何[]=[]; 构造函数(){ 这一点。项=[{名称:“汤姆”},{名称:“杰瑞”},{名称:“凯蒂”}); } getItems () { 这一点。项=[{名称:“汤姆”},{名称:“杰瑞”},{名称:“Mac”},{名称:“约翰”}); } trackByIndex(指数项){ 返回索引; } }
这样做之后,角就知道哪些项变动了: