是否总有一条指令来检测每个生命周期挂钩(例如ngOnDestroy())并在销毁组件之前实现一些垃圾回收器?
我想这样做是为了避免组件运行某些东西并导致内存泄漏
答案 0 :(得分:0)
我认为有两种选择
<app-mycomp cleanup></app-mycomp>
1)指令知道其宿主组件。因此,您可以将主机注入构造函数中
...
constructor(private host: MycompComponent) { }
...
2)以及指令是否不知道主机。这个有点复杂 主机组件需要自己提供
@Component({
selector: 'app-mycomp',
templateUrl: './mycomp.component.html',
styleUrls: ['./mycomp.component.css'],
providers: [{
provide: 'cleanable',
useExisting: forwardRef(()=> MycompComponent)
}]
})
export class MycompComponent extends Cleanable implements OnInit { ... }
现在您也可以在指令中注入
constructor(@Inject('cleanable') private host: Cleanable) { ... }
最后,您可以在指令中定义生命周期挂钩。