angular aot不会从mixins类执行生命周期钩子

时间:2017-10-06 13:18:55

标签: angular typescript inheritance mixins

我正在使用this post中的以下混音 这使我的组件可以访问一组可重用的方法,包括调用生命周期钩子。

然而,通过AOT构建,似乎OnInit和OnDestroy不会被触发。有没有解决方案来执行它?

export function Destroyable<T extends Constructor<{}>>(Base: T) {
  return class Mixin extends Base implements OnDestroy {
    private readonly subscriptions: Subscription[] = [];

    protected registerSubscription(sub: Subscription) {
      this.subscriptions.push(sub);
    }

    public ngOnDestroy() {
      this.subscriptions.forEach(x => x.unsubscribe());
      this.subscriptions.length = 0; // release memory
    }
  };
}
任何组件中的

export class CMP extends destroyable(){
     constructor(){ super() }
}

0 个答案:

没有答案