angular - ngfor循环内的数据绑定时出现角度错误
解决方案
该iShouldrepeatOneTime
方法被调用 4 次的原因是因为 Angular 的默认ChangeDetectionStrategy。默认情况下,每当你的组件发生变化时,在这种情况下,对于每个循环,Angular 都会检查你的整个组件是否有变化。Angular 知道 的返回值是否iShouldrepeatOneTime
已更改的唯一方法是调用它。
那么你如何解决这个问题呢?有两种选择:
- 使用
OnPush
ChangeDetectionStrategy,或 - 确保不要因为事件发射器以外的原因绑定到模板中的方法。而是绑定到属性。
我将扩展我的第二点。想象一下,您的组件中有一个属性someValue
和一个方法calculateSomeValue()
,如下所示:
someValue = 'foo';
calculateSomeValue(): string {
return 'bar';
}
在您的模板中,拥有{{ someValue }}
比在前一种方法中更有效,{{ calculateSomeValue() }}
因为 Angular 已经知道属性的值是否已更改以及是否需要在视图中更新。在后一种方法中,Angular 需要先调用该方法,然后才能知道是否需要更新视图中的值。
推荐阅读
- docker - nfs 不支持“overlay2”” storage-driver=overlay2
- javascript - 将内容添加到其他页面的按钮
- java - Java中默认方法中的默认关键字是可选说明符吗?
- c++ - 在 OSX 上编译 C++ 时找不到库
- oracle - oracledb_exporter 二进制文件
- c++ - C++ 使用来自 CRTP 模板模板基类的构造函数
- google-compute-engine - 用于 kms 的 Python 身份验证
- python - 是否可以通过训练小数据子集来验证深度学习模型?
- r - 在 R 的列表中创建序列
- c++11 - 以下 C++ 标记代码的作用是什么?