Angular 2 在迭代结束时使用 *ngFor 设置布尔值
Angular 2 set boolean at end of iteration using *ngFor
我正在通过 rest-endport 加载一些数据以将其保存在数组中。在 *ngFor 指令中,我目前正在遍历所有这些数据。所以一切正常。
在 Angular 中是否有任何可能的方法,例如每当数组迭代完成时设置一个布尔值(以便我可以在完成时触发另一个函数)?
-- 编辑--
我正在检索数据的 ngOnInit 生命周期方法:
ngOnInit() {
this.restService.getSomeBooks(5000).subscribe(buch => {
this.buecher = buch;
this.fetched = true;
})
}
之后 - 在 HTML - 我正在迭代该数据:
<table>
<thead>some table-heads</thead>
<tbody>
<tr style="text-align: center" *ngFor="let buchforTable of buecher">
<td>{{buchforTable.author}}</td>
<td>{{buchforTable.erscheinungsdatum}}</td>
<td>{{buchforTable.isbn.toString()}}</td>
<td>{{buchforTable.verlag}}</td>
<td>{{buchforTable.uuid}}</td>
</tr>
</tbody>
</table>
*ngFor 迭代应该在完成时设置一个布尔变量。
正如 Alex Po 已经提到的,trackBy 正在运行。正如您在以下代码片段中看到的,使用 trackBy 可以根据迭代的当前索引处理事件。
<tbody>
<tr style="text-align: center" *ngFor="let buchforTable of buecher; trackBy: trackByFn">
<td>{{buchforTable.author}}</td>
<td>{{buchforTable.erscheinungsdatum}}</td>
<td>{{buchforTable.isbn.toString()}}</td>
<td>{{buchforTable.verlag}}</td>
<td>{{buchforTable.uuid}}</td>
</tr>
</tbody>
要测量所有数组对象的渲染过程的时间,trackBy 函数将如下所示(此处数组包含 5000 个对象 -> 索引 0 到 4999):
trackByFn(index){
if(index == 0)
this.renderStart = performance.now();
if(index == 4999) {
var renderStopp = performance.now();
var timeToRender = renderStopp - this.renderStart;
}
}
我正在通过 rest-endport 加载一些数据以将其保存在数组中。在 *ngFor 指令中,我目前正在遍历所有这些数据。所以一切正常。
在 Angular 中是否有任何可能的方法,例如每当数组迭代完成时设置一个布尔值(以便我可以在完成时触发另一个函数)?
-- 编辑--
我正在检索数据的 ngOnInit 生命周期方法:
ngOnInit() {
this.restService.getSomeBooks(5000).subscribe(buch => {
this.buecher = buch;
this.fetched = true;
})
}
之后 - 在 HTML - 我正在迭代该数据:
<table>
<thead>some table-heads</thead>
<tbody>
<tr style="text-align: center" *ngFor="let buchforTable of buecher">
<td>{{buchforTable.author}}</td>
<td>{{buchforTable.erscheinungsdatum}}</td>
<td>{{buchforTable.isbn.toString()}}</td>
<td>{{buchforTable.verlag}}</td>
<td>{{buchforTable.uuid}}</td>
</tr>
</tbody>
</table>
*ngFor 迭代应该在完成时设置一个布尔变量。
正如 Alex Po 已经提到的,trackBy 正在运行。正如您在以下代码片段中看到的,使用 trackBy 可以根据迭代的当前索引处理事件。
<tbody>
<tr style="text-align: center" *ngFor="let buchforTable of buecher; trackBy: trackByFn">
<td>{{buchforTable.author}}</td>
<td>{{buchforTable.erscheinungsdatum}}</td>
<td>{{buchforTable.isbn.toString()}}</td>
<td>{{buchforTable.verlag}}</td>
<td>{{buchforTable.uuid}}</td>
</tr>
</tbody>
要测量所有数组对象的渲染过程的时间,trackBy 函数将如下所示(此处数组包含 5000 个对象 -> 索引 0 到 4999):
trackByFn(index){
if(index == 0)
this.renderStart = performance.now();
if(index == 4999) {
var renderStopp = performance.now();
var timeToRender = renderStopp - this.renderStart;
}
}