Я изучаю, как ChangeDetection работает в Angular.
Один из способов вызвать ChangeDetection - запустить метод detectChanges()
:
constructor(cd: ChangeDetectorRef) {
setTimeout(_ => cd.detectChanges(), 3000)
}
Он выполнит обнаружение изменений в компоненте, но не коснется каких-либо хуков жизненного цикла компонента.
Итак, если вы попытаетесь выполнить ngDoCheck
или ngAfterViewChecked
внутри одного и того же компонента:
ngDoCheck() {
console.log('ChangeDetection')
}
ngAfterViewChecked() {
console.log('ChangeDetection')
}
вы ничего не получите в консоли.
Здесь вы можете поиграть с кодом - https://stackblitz.com/edit/ng-cd-check?file=src%2Fapp%2Fhello.component.ts
Итак, мой вопрос:
Is there a general way (that will work for all the cases) to define that ChangeDetection was executed on a specific component?