Вызовите ngAfterViewInit углового компонента из общего места
Я использую всплывающую подсказку. Я хочу, чтобы вызвать ngAfterViewInit для каждого компонента из какого-то общего места.
Общее место (например, app.module.ts)
ngAfterViewInit() {
$('[data-toggle="tooltip"]').tooltip();
}
Компонент_1: в компоненте отсутствует ngAfterViewInit, а жизненный цикл запускается из какого-то общего места.
Компонент_2: этот компонент имеет ngAfterViewInit,
ngAfterViewInit() {
// Some extra functionality
}
В этом случае ngAfterViewInit запускается из обоих мест (обычное место, а также из соответствующего компонента)
Есть ли способ добиться этого?
Спасибо
1 ответ
Нет "одного общего места", где вы можете определить глобальное поведение для всех ваших компонентов.
Вместо этого вы можете создать следующий класс и расширить его желаемыми компонентами:
export abstract class BaseComponent implements AfterViewInit {
/**
* View initialization behavior. Note that derived classes must not implement AfterViewInit .
* Use viewInit() on derived classes instead.
*/
ngAfterViewInit(): void {
// Your code
this.viewInit();
}
/**
* Function that allows derived components to define an additional view initialization behavior
*/
abstract viewInit(): void;
}