Я использую угловой 4.2.3 и смотрю на Документы, в которых говорится:
Директива имеет один и тот же набор крючков жизненного цикла, минус крючки, которые специфичны для содержимого компонента и представлений.
Крюки, которые относятся только к компоненту:
ngAfterContentInit
, ngAfterContentChecked
, ngAfterViewInit
, ngAfterViewChecked
.
Но я создал тест:
@Directive({
selector: '[simpleTimer]'
})
export class SimpleTimer {
ngAfterContentInit() {console.log('directive ngAfterContentInit');}
ngAfterContentChecked() {console.log('directive ngAfterContentChecked'); }
ngAfterViewInit() {console.log('directive ngAfterViewInit'); }
ngAfterViewChecked(){console.log('directive ngAfterViewChecked'); }
}
Где мое главное приложение:
@Component({
selector: 'my-app',
template: '
<div>Hello
<div simpleTimer >
</div>
</div>'
})
И все же я вижу в консоли:
Вопрос
Согласно документам, эти крючки не должны выделяться для директив. Так?
Это просто неправильные документы. Эти перехватчики жизненного цикла также регулярно запускаются для директив. Не было бы лишнего смысла.