Angular 2 - 为所有组件定义ngAfterViewInit

时间:2016-09-20 13:06:33

标签: angular

在我的Angular2应用程序中,当视图可用时,我必须在每个组件初始化后调用脚本。

我正在寻找为所有组件定义“ngAfterViewInit”生命周期回调的最佳方法。我无法在每个组件中编写它,因为团队中的某个人忘记了它会发生巨大的变化。

我考虑过:

  • 如果可能,覆盖@Component
  • 使用路由

有办法做到这一点吗?

感谢您的帮助!

1 个答案:

答案 0 :(得分:2)

您需要创建一个抽象类,然后从该类扩展所有组件(类)。

类似的东西:

import { Component } from '@angular/core';

export abstract class AbstractViewInit {
  ngAfterViewInit() {
    console.log('after View init');
  }
}

@Component({
  selector: 'child',
  template: 'I am a child'
})
export class ChildComponent extends AbstractViewInit {}

@Component({
  selector: 'my-app',
  template: '<h1>My First Angular 2 App</h1> <child></child>'
})
export class AppComponent extends AbstractViewInit {}

工作人员:http://plnkr.co/edit/Lmyes9vmUosGS5shvHqA?p=preview