Angular 9 - trackBy 模板类型检查 angular
Angular 9 - trackBy template type checking angular
我有一个简单的 trackBy 语句,直到 ng9 才出现。
<div *ngFor="let s of skills; trackBy: s?.id">
<app-skill [skill]="s"></app-skill>
</div>
现在,通过模板类型检查,编译器会抱怨:属性 's' 在类型 'SkillsListComponent' 上不存在——这是真的——因为它被内联定义为表达式。当代码运行时,这个编译错误也不会停止……只是想要一个整洁的代码库。有人知道如何用 ng9 友好的方式写这个吗?
根据 documentation 你可以调用 trackBy
中的方法
所以你可以定义方法return id
trackByItems(index: number, skill: {id: number}): number {
return skill.id;
}
I specified the type there like this since I don't know what type you are using
在 HTML 中直接调用它
<div *ngFor="let s of skills; trackBy: trackByItems">
<app-skill [skill]="s"></app-skill>
</div>
我有一个简单的 trackBy 语句,直到 ng9 才出现。
<div *ngFor="let s of skills; trackBy: s?.id">
<app-skill [skill]="s"></app-skill>
</div>
现在,通过模板类型检查,编译器会抱怨:属性 's' 在类型 'SkillsListComponent' 上不存在——这是真的——因为它被内联定义为表达式。当代码运行时,这个编译错误也不会停止……只是想要一个整洁的代码库。有人知道如何用 ng9 友好的方式写这个吗?
根据 documentation 你可以调用 trackBy
所以你可以定义方法return id
trackByItems(index: number, skill: {id: number}): number {
return skill.id;
}
I specified the type there like this since I don't know what type you are using
在 HTML 中直接调用它
<div *ngFor="let s of skills; trackBy: trackByItems">
<app-skill [skill]="s"></app-skill>
</div>