0

我正在使用引导工具提示。我想从某个共同的地方为每个组件触发 ngAfterViewInit。

常见的地方(如 app.module.ts)

ngAfterViewInit() {
    $('[data-toggle="tooltip"]').tooltip();
  }

Component_1:组件中没有ngAfterViewInit,仍然是从某个常见的地方触发生命周期。

Component_2:这个组件有ngAfterViewInit,

ngAfterViewInit() {
    // Some extra functionality
  }

在这种情况下,ngAfterViewInit 是从两个地方触发的(公共位置以及它各自的组件)

有什么办法可以做到这一点?

谢谢

4

1 回答 1

0

没有“一个共同的地方”可以为所有组件定义全局行为。

相反,您可以创建以下类并让您想要的组件扩展它:

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;
}
于 2019-01-01T21:11:04.153 回答