角度生命周期钩在组件外部

时间:2018-02-15 10:30:15

标签: angular angular5

我们正在寻找一种方法来注册或监听通过路径加载的组件之外的Angular生命周期钩子。

现在组件必须实现AfterContentInit,AfterViewInit,OnInit等接口才能挂钩生命周期......

我们希望能够挂钩路径组件之外的生命周期事件。原因是我们正在构建一个框架,我们不想为所有组件强制执行基类。

这可能吗?

1 个答案:

答案 0 :(得分:1)

当然,这是可能的,您可以使用ViewChild()和Output()一起控制子组件。

您无需实施角度生命周期,因为您可以手动控制操作。以下是app.component可以做的一个例子,让我们说:

在html中你会有你的子组件:

<app-child #refChild (onStateChange)="execParentFunc($event)"></app-child>

简单地说:

@ViewChild('refChild') myChildComponent: any;

然后你可以从你的父

执行功能
this.myChildComponent.childFunction();

最后,您还可以使用Output()

捕捉孩子的变化
childFunction() {
    // process things...
    let newValue = 'something';
    this.onStateChange.emit(newValue); 
}

==&GT;这将运行你的execParentFunc($ event),其中$ event = newValue在这种情况下