【发布时间】:2021-03-17 20:23:33
【问题描述】:
使用 Angular 11,我有一个从其他地方接收数据数组的组件。我想使用带有自定义格式的*ngFor 循环在模板中显示数据。理想情况下,我会使用函数来格式化数据,但在模板中使用函数会导致性能问题。在带有*ngFor 循环的模板中格式化数据的最佳方法是什么?
例如,此模板有效,但未使用最佳做法。 (注意:格式只是一个例子。我正在寻找一个通用答案,而不是 DatePipe 解决方案)
class UserExample {
id: number;
name: string;
loginTime: Date;
}
@Component({
template: `
<div *ngFor="user of userData; trackBy: trackRow">
<h1>Name: {{ user.name }}</h1>
<p>Hours: {{ getHours(user.loginTime) }}</p>
<p>Milliseconds: {{ getMilliseconds(user.loginTime) }}</p>
</div>
`
})
export class ExampleComponent {
@Input() userData: UserExample[] = [];
public getHours(loginTime: Date): string {
return loginTime.getHours().toString();
}
public getMilliseconds(loginTime: Date): string {
return loginTime.getMilliseconds().toString();
}
public trackRow(index: number, item: UserExample): number {
return item.id;
}
}
【问题讨论】: