2017-09-04 43 views
-3

是否可以顯示字符串列表,並且不跟蹤對它們的更改? (我遇到性能問題)。Angular 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函數將索引和當前項目作爲參數,並且需要返回此項目的唯一標識符。

現在,當您更改集合時,Angular可以跟蹤根據唯一標識符添加或刪除了哪些項目,並創建或銷燬僅更改的內容。檢查文檔在這裏:https://angular.io/api/common/NgForOf

+0

試圖使用這個,但這個功能仍然被調用很多次,這會降低性能 –