我注意到当我回到已经实例化的页面时,ngOnInit()
方法没有被调用。我必须使用任何其他方法吗?我需要一个方法,每次访问特定页面时都会调用它。
修改
已经测试onPageWillEnter()
,但在Ionic 2中没有被解雇
答案 0 :(得分:4)
答案 1 :(得分:1)
如果更改路径以便仅更改参数值,则会重复使用该组件。
您可以使用
constructor(router:Router) {
router.params.subscribe(val => myInit());
}
在这种情况下调用初始化代码而不是ngOnInit()
。
答案 2 :(得分:1)
要在每次访问页面时调用ngOnInit,您应该使用ngOnDestroy。例如,如果组件内容依赖于url中的代码,则应以这种方式使用OnDestroy:
export class GRMTasksComponent implements OnInit, OnDestroy {
subParams: Subscription;
ngOnInit() {
this.subParams = this._route.params.subscribe(params => {
//some code...
});
}
ngOnDestroy() {
this.subParams.unsubscribe();
}
}