Angular mat-checkbox [checked] 属性在动态分配值时会多次触发
<ul>
<li *ngFor=let choice of checkboxlist.options>
<mat-checkbox [checked]=isChecked(choice) > <mat-checkbox>
<li>
<ul>
在 ts 文件中,我有基于某些逻辑的 isChecked 函数,它返回 true 或 false (这很好用),但函数会多次触发。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
checkboxlist.options
中的每个选项都会触发一次该函数吗?当您更新
checkboxlist.options
列表中的单个选择时,它会为每个对于循环几个选项的小型应用程序来说,这不是什么大问题。但是,这是一个很好的做法,如果您的列表很大,那么您希望在
ngFor
中使用trackBy
如果您使用
trackBy
那么您的列表将仅更新已更改的列表项。有很多参考资料可以帮助您比我更好地构建 trackBy 方法,这是另一个 StackOverflow 问题 关于它。
祝你好运!
Is the function getting triggered once for each option in your
checkboxlist.options
?When you update a single selection in your
checkboxlist.options
list, and it is re-rendering the whole DOM for each<li *ngFor
, you can help it be a little smarter.For small applications where your looping over a handful of options this is not a big deal. However, it is good practice and if your list is large then you want to use
trackBy
in yourngFor
If you use
trackBy
then your list will ONLY update the list items that are changed.There's a lot of references out there that will help you build your trackBy method better than I will, here is a good starting point for another StackOverflow question about it.
Good luck!