我正在努力将一个1.x角度站点转换为2.6角度,并且试图获取一些文本和一个要显示的URL,并且从旧站点获取了以下代码:
<div ng-repeat="item in cartCtrl.downloadFinishedItems track by $index">
<div class="links-14">
<a ng-show="item.downloadJob.downloadLink"
ng-click="cartCtrl.downloadFile(item)">{{item.name}}</a>
</div>
</div>
但是当我转换为:
<div *ngFor="let item of downloadFinishedItems track by $index">
<div class="links-14">
<a [hidden]="!item.downloadJob.downloadLink"
(click)="downloadFile(item)">{{item.name}}</a>
</div>
</div>
我收到以下错误:
是该行的新等效项吗? :
<div *ngFor="let item of downloadFinishedItems; index as i; trackBy:i">
答案 0 :(得分:2)
如the NgForOf documentation中所述:
要自定义默认跟踪算法, NgForOf 支持 trackBy 选项。 trackBy 带有一个带有两个参数的函数: index 和 项目。如果给出了 trackBy ,则角度跟踪会根据返回值进行更改 的功能。
在您的情况下,它将是:
<div *ngFor="let item of downloadFinishedItems; trackBy: trackByIndex">
使用方法:
trackByIndex(index, item) {
return index;
}