【发布时间】:2017-02-22 18:01:45
【问题描述】:
我注意到当我回到已经实例化的页面时,ngOnInit() 方法没有被调用。我必须为此使用任何其他方法吗?我需要一个在他访问特定页面时调用的方法。
编辑
已经测试过 onPageWillEnter() 但它不会在 Ionic 2 中触发
【问题讨论】:
我注意到当我回到已经实例化的页面时,ngOnInit() 方法没有被调用。我必须为此使用任何其他方法吗?我需要一个在他访问特定页面时调用的方法。
编辑
已经测试过 onPageWillEnter() 但它不会在 Ionic 2 中触发
【问题讨论】:
【讨论】:
如果你改变了一个路由,只改变了一个参数值,那么组件就会被重用。
你可以使用
constructor(router:Router) {
router.params.subscribe(val => myInit());
}
在这种情况下调用您的初始化代码而不是使用ngOnInit()。
【讨论】:
要在每次访问页面时调用 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();
}
}
【讨论】: