Angular 2/4 - 显示列表而不跟踪它的变化

时间:2017-09-04 10:07:06

标签: javascript performance angular typescript ngfor

是否可以显示字符串列表,并且不跟踪它们的更改? (我有性能问题)。

我从REST API获取语言列表,然后使用* ngFor动态生成语言下拉列表。当我有10个以上的下拉菜单时,应用程序开始变慢(10个下拉菜单* 200个语言= 2000个要监视的项目)。

解决方案不是跟踪我的语言列表中的更改,因为它永远不会改变,但是没有任何记录。

代码

控制器
langs: string[] = ['English', 'German', 'Spanish', ...];

查看
<select ...> <option *ngFor="lang of langs">{{lang}}</option> </select>

1 个答案:

答案 0 :(得分:0)

我们可以通过提供trackBy功能帮助Angular跟踪添加或删除的项目。 trackBy函数将索引和当前项作为参数,并需要返回此项的唯一标识符。

现在,当您更改集合时,Angular可以根据唯一标识符跟踪已添加或删除的项目,并仅创建或销毁更改的内容。请查看此处的文档:https://angular.io/api/common/NgForOf