首页 文章

Angular Material 2输入错误匹配器回调多次调用

提问于
浏览
1

我对在Angular Material 2输入上调用错误匹配器函数的次数感到惊讶 . 查看此plunker的控制台输出:http://plnkr.co/edit/Bop4v4MtX2Wj6rVwv04P?p=preview

当页面加载时,在您触摸输入之前已经调用了13次 myErrorStateMatcher . 每次单击输入时,该函数再调用12次,失去焦点时再调用6次 .

这很可能与Angular的变化检测机制有关,但我对它的了解有点受限 .

我的问题是:是否可以减少对匹配器功能的调用次数?如果这是由于变化检测,我该如何减少检测次数?

1 回答

  • 1

    必须在每个更改检测周期运行错误匹配器,因为它可能与它存在的表单控件(父表单提交,兄弟验证状态等)无关 . 因此,您应该尽量保持匹配器非常简单和精益 .

    您可以将组件更改为使用 changeDetectionStrategy.OnPush ,这将显着减少呼叫 . 更好的是this open PR将很快合并,并且应该限制每次交互1或2次调用

相关问题