2017-03-04 5 views
0

私は角度2を初めて使用しています。通常、* ngForを使用して配列をループし、配列の値に基づいてHTMLを表示します。たとえば、角型2の動的配列からHTMLを生成するベストプラクティス

<ul *ngFor="let employee of employees"> 
    <li>{{employee.name}}</li> 
</ul> 

これは完全に機能します。しかし、その配列に要素を追加するとき(1要素でさえも)、HTMLを表示するために配列全体を通過します。右 ?

私は無限スクロールプラグイン(https://www.npmjs.com/package/angular2-infinite-scroll)を使用したいと思っていました。スクロールトリガを押すたびに要素が配列に追加され、この配列全体が最初からループしてHTMLを生成します。スクロールトリガがHTMLを表示するために配列全体を通過するたびに、これはベストプラクティスだとは思わない。

理想的には、特定のスクロールの要素は、配列全体を繰り返しループするのではなく、既存のHTMLに追加する必要がありますか?

サンプルコードを参考にしてください。

その場合
+1

角はスマートであり、正しいことをします。それが「diffing」のことです。必要に応じて、 'trackBy'を使って助けてください。 –

答えて

0

、ユーザーが以下の使用して、ページの最後までスクロールしたときに次の配列要素を取得するためにサービス呼び出しをトリガーする必要があり、

window.onscroll = function(ev) { 
    if ((window.innerHeight + window.scrollY) >= document.body.offsetHeight) { 
     //raise the service call to fetch next set of array elements 
    } 
}; 

注:あなたは、いくつかのデモが必要な場合は、更新私はそれを再利用できるようにあなたのポストにコードする

+0

プラグインからコードをチェックしたところ、https://www.npmjs.com/package/angular2-infinite-scrollファイル "app.ts"のデモを確認してください...ここで値は配列にプッシュされ、レンダリングされます毎回全体の配列 – user2609021

+1

@ user2609021実際にあなたの期待は何ですか? – Aravind

+0

私の質問は、配列に要素を追加するたびに、配列全体をループすることによってHTMLをレンダリングする必要があるということです。これによりパフォーマンスに問題はありますか?角2でより良い方法があるはずです... – user2609021

関連する問題