我注意到当我回到已经实例化的页面时,ngOnInit()
方法没有被调用。我必须使用任何其他方法呢?我需要每次访问特定页面时调用的方法。ngOnInit回来时没有调用
编辑 测试已经onPageWillEnter()
但如果改变路线,使得只有一个参数值发生变化,则该组件被重用它就会不离子2
我注意到当我回到已经实例化的页面时,ngOnInit()
方法没有被调用。我必须使用任何其他方法呢?我需要每次访问特定页面时调用的方法。ngOnInit回来时没有调用
编辑 测试已经onPageWillEnter()
但如果改变路线,使得只有一个参数值发生变化,则该组件被重用它就会不离子2
解雇。
您可以使用
constructor(router:Router) {
router.params.subscribe(val => myInit());
}
调用,而不是在这种情况下,使用您的ngOnInit()
初始化代码。
要每次访问页面时调用ngOnInit,应该使用ngOnDestroy。例如,如果您的成分含量取决于网址的代码,你应该使用的OnDestroy,以这样的方式
export class GRMTasksComponent implements OnInit, OnDestroy {
subParams: Subscription;
ngOnInit() {
this.subParams = this._route.params.subscribe(params => {
//some code...
});
}
ngOnDestroy() {
this.subParams.unsubscribe();
}
}
https://angular.io/docs/ts/latest/guide/lifecycle-hooks.html –