Angular属性绑定ngForTrack未被任何指令使用

时间:2018-06-28 18:47:25

标签: html angular ngfor angular6

我正在努力将一个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>

我收到以下错误:

What am I missing here?

是该行的新等效项吗? :

 <div *ngFor="let item of downloadFinishedItems; index as i; trackBy:i">

1 个答案:

答案 0 :(得分:2)

the NgForOf documentation中所述:

  

要自定义默认跟踪算法, NgForOf 支持 trackBy   选项。 trackBy 带有一个带有两个参数的函数: index 和   项目。如果给出了 trackBy ,则角度跟踪会根据返回值进行更改   的功能。

在您的情况下,它将是:

<div *ngFor="let item of downloadFinishedItems; trackBy: trackByIndex">

使用方法:

trackByIndex(index, item) {
  return index;
}