返回时没有调用ngOnInit

时间:2017-02-22 09:56:29

标签: angular ionic2

我注意到当我回到已经实例化的页面时,ngOnInit()方法没有被调用。我必须使用任何其他方法吗?我需要一个方法,每次访问特定页面时都会调用它。

修改 已经测试onPageWillEnter(),但在Ionic 2中没有被解雇

3 个答案:

答案 0 :(得分:4)

点击链接中的Lifecycle Events部分。

您可以使用ionic 2生命周期挂钩

ionViewWillEnter(){
 //your methods
}

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