Ваш детектор изменений дочерних компонентов может иметь следующие стратегии
- по умолчанию
- onPu sh
В стратегии по умолчанию CD работает для любое изменение в оформленных свойствах @Input ()
В стратегии onPu sh CD запускается при передаче нового объекта (ссылки) в оформленные свойства @Input.
Независимо от стратегии, CD всегда запускается в следующем сценарии ios,
- Событие, такое как щелчок, отправить, запускается
- XHR призыв к работе с помощью API
- асинхронных JavaScript функций, таких как assetTimeOut () или setInterval () выполняется
Имейте в виду, что Angular CD можно визуализировать как направленное дерево, которое означает, что все компоненты могут рассматриваться как узлы в дереве, и Angular всегда запускает CD с узла root до нижней части дерева.
Даже если в CC -121 сработало событие, Angular запустит CD с компонента root вниз. Однако запуск CD остановится на узле, где для стратегии задано значение onPu sh, и вы не передаете новый объект в одно из оформленных свойств @Input.
Итак, теперь вы немного понимаете, когда и как работает CD, жизненный цикл ngDoCheck () запускается при каждом запуске CD для компонента.
Надеюсь, это поможет.
Спасибо