2017-09-04 9 views
-3

文字列のリストを表示できますか? (私はパフォーマンス上の問題があります)。角2/4 - リストを表示していて、それに対する変更を追跡していない

REST APIから言語のリストを取得してから、* ngForを使用して言語のドロップダウンを動的に生成しています。私は10 +ドロップダウン(10ドロップダウン* 200言語= 2000アイテムを見て)があるとき、アプリケーションが遅くなるように開始されます。

解決策は決して変更されないため、言語リストの変更を追跡することではありませんが、それについては何も書かれていません。

コード

コントローラ
langs: string[] = ['English', 'German', 'Spanish', ...];

ビュー
<select ...> <option *ngFor="lang of langs">{{lang}}</option> </select>

+0

達成しようとしていることを示すコードを追加してください。私はあなたがどこかに似たような機能を持っていると思います。 –

+0

編集した私の問題 –

+0

'langs'はあなたの質問に表示されているコードのようなパフォーマンスの問題を引き起こす、あなたのコードの静的なプロパティですか、それとも関数呼び出しから取得しますか? –

答えて

0

我々はtrackBy機能を提供することにより、追加または削除される項目を追跡するために、角度を助けることができます。 trackBy関数は、インデックスと現在の項目を引数とし、この項目の一意の識別子を返す必要があります。

コレクションを変更すると、一意の識別子に従って追加または削除されたアイテムを追跡し、変更されたもののみを作成または破棄できます。ここでドキュメントを確認してください:https://angular.io/api/common/NgForOf

+0

これを使用しようとしましたが、この関数はまだ多くの時間がかかり、パフォーマンスが低下します –

関連する問題