重新启动@Input更改

时间:2016-04-09 05:49:11

标签: angularjs typescript angular

当组件输入发生变化时,是否可以告诉angular运行init(或任何其他生命周期函数或函数),或者我必须从父组件调用该函数而不是更改输入?

感谢您的回答!

1 个答案:

答案 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');
    }
};