问题标签 [angularjs-track-by]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
111 浏览

angular - 在没有 trackBy 的情况下使用 mat-select 和 ngFor 时浏览器冻结

TL;DR:我已经有了可行的解决方案,但我想解释一下为什么 mat-select 会这样。

在使用 Angular Material 构建应用程序时,我在模板中mat-select结合使用时遇到了这个错误:函数被连续调用,就像在无限循环中一样,浏览器冻结。*ngForget priorities

零件

可能的解决方案

  1. 指定每个 mat 选项(不带 ngFor)。尽管这在很多情况下都没有用。
  1. 使用原生 html 选择和选项。这是一个有效的解决方案,但我想让它与 Material 一起使用。
  1. 似乎为了使用mat-optionwithngFor我们需要添加一个trackBy函数。¿ 有人能解释一下为什么吗?我知道使用trackby可以提高效率,但我没有找到任何有关为什么必须将其与mat-select.