0

配列で安全にするために、rest-endport経由でデータをロードしています。 * ngForディレクティブでは、現在、すべてのデータを繰り返し処理しています。だから永遠に働いている。角2は、* ngForを使用して反復の終わりにブール値を設定します

角度の可能性はありますか?配列の反復が終了するたびにブール値を設定してください(完全に別の関数を呼び出せるように)。私はデータretreivingいngOnInitライフサイクルメソッドで

- - 編集

: - - HTMLでその後

ngOnInit() { 
    this.restService.getSomeBooks(5000).subscribe(buch => { 
    this.buecher = buch; 
    this.fetched = true; 
    }) 
} 

iは、そのデータを反復処理しています

<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-iterationは、実行されるたびにブール変数を設定する必要があります。

+0

これで解決しようとしている実際の問題は何ですか?いくつかの文脈を提供できますか? – jonrsharpe

+0

文脈は、繰り返しの開始から終了までの時間を測定したいということです。だから私は5000要素の配列を繰り返しているとき、私はfirt配列インデックスの変数に現在の時間を保存し、そして最後の配列インデックスで現在の時刻を再び安全にしたい。これらの時間値の違いによって、私は反復プロセスに必要な実際の時間を得ることができます。私はそれが理解できることを願っています。 – Fzum

+0

コードを表示すると、それを解決する良い方法があると確信しています。 –

答えて

0

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-関数は(4999へ>インデックス0アレイは、ここに5000個のオブジェクトを含む)のようになり、アレイは、オブジェクト

trackByFn(index){ 
    if(index == 0) 
     this.renderStart = performance.now(); 
    if(index == 4999) { 
     var renderStopp = performance.now(); 
     var timeToRender = renderStopp - this.renderStart; 
    } 
    } 
関連する問題