ngFor具有自定义参数的trackBy函数

ske*_*eej 5 angularjs-track-by ngfor angular

trackBy函数(例如,在ngFor中)提供两个参数:index和item(从正在迭代的集合中)。有没有办法将附加信息(作为参数?)传递给trackBy函数?

我的情况是,我可能会为组件的每个实例(包含ngFor)遍历各种类型,并使用不同的标识字段名称。理想情况下,我希望能够传递第三个参数,该参数指示应读取项目中的哪个字段。

yur*_*zui 5

bind 方法可以帮助您完成此操作

template.html

<div *ngFor="let item of items; trackBy: trackByFn.bind(this, 'name')">
  {{ item }}
</div>
Run Code Online (Sandbox Code Playgroud)

component.ts

items = [
  {
    id: 1,
    name: 'name1'
  },
  {
    id: 2,
    name: 'name2'
  }
]
trackByFn(customParam, index, item) {
  return item[customParam];
}
Run Code Online (Sandbox Code Playgroud)