【发布时间】:2017-08-05 11:53:22
【问题描述】:
假设我有一个这样的组件结构:
AppComponent
HeaderComponent
ContentComponent
TodosComponent
TodoComponent
如果我将 HeaderComponent 的 changeDetection 设置为 ChangeDetectionStrategy.OnPush 并更改 TodoComponent 中的某些内容,仍然会触发 HeaderComponent 的 ngDoCheck()、ngAfterViewChecked() 和 ngAfterContentChecked()。
我错过了什么? ngDoCheck 是否会被触发?如果是,如何判断组件是否被 ChangeDetection 检查?
【问题讨论】:
-
这取决于正在更改的内容,但是您应该查看这两个链接,因为它们详细解释了可能发生的情况。 stackoverflow.com/questions/38629828/…stackoverflow.com/questions/39795634/…。基于这些,无论您的更改检测策略如何,似乎都会触发
ngDoCheck。 -
my answer 有帮助吗?
标签: angular angular2-changedetection