当组件输入发生变化时,是否可以告诉angular运行init(或任何其他生命周期函数或函数),或者我必须从父组件调用该函数而不是更改输入?
感谢您的回答!
答案 0 :(得分:2)
当组件的输入发生变化时,ngOnChanges
生命周期钩子会运行。在那里,您可以根据需要调用任何其他lifecycle hook or/and any function
。
ngOnChanges(...args: any[]) {
console.log('onChange fired');
this.ngOnInit();
}
ngOnInit()
{
console.log('ngOnInit fired');
}
编辑:
出于某种原因,如果您想从父母那里拨打孩子的ngOnInit
,那么您可以使用ViewChild
,如下所示。
export class Parent{
@ViewChild(child) vc:child;
ngAfterViewInit()
{
console.log("ngAfterInit");
console.log(this.vc.ngOnInit());
}
};
export class child{
ngOnInit()
{
console.log('ngOnInit fired');
}
};