Cru*_*ine 5 observable angular angular-changedetection
我正在阅读一些有关更改检测的文章,并且尝试使用 和 启用或禁用更改changeDetectorRef.detach()检测changeDetectorRef.reattach()。
我还将该组件挂接到唯一ngDoCheck()发现ngDoCheck()即使在之后也被调用detach()。我究竟做错了什么 ?有人可以解释为什么ngDocheck()被称为吗?我什至也有ChangeDetectionStartegy设置OnPush。
这是我正在阅读的文章以了解变更检测
我还为此创建了一个示例:https ://stackblitz.com/edit/angular-4ytdbs
这是因为detach()将组件与其自己的组件分离ChangeDetector,使其不检查模板/输入/主机绑定。这与正在做的事情是不同的ngDoCheck。这用于实现一种自定义更改检测,以检测您知道将会发生但 Angular 无法预测的更改。应用程序中任何地方的任何循环都会调用它。
我想不让你的代码在你的内部运行的唯一方法ngDoCheck是在分离时设置一个标志:
ngDoCheck(): void {
if (attached) {
// ...
}
}
Run Code Online (Sandbox Code Playgroud)
但我相信你也已经明白了这一点:)
@selemmn 提供的链接确实提供了很好的见解
| 归档时间: |
|
| 查看次数: |
687 次 |
| 最近记录: |