2017-02-22 90 views
1

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

编辑 测试已经onPageWillEnter()但如果改变路线,使得只有一个参数值发生变化,则该组件被重用它就会不离子2

+0

https://angular.io/docs/ts/latest/guide/lifecycle-hooks.html –

回答

2

检查中的链接Lifecycle Events部分。

可以使用离子2生命周期挂钩

ionViewWillEnter(){ 
//your methods 
} 
1

解雇。

您可以使用

constructor(router:Router) { 
    router.params.subscribe(val => myInit()); 
} 

调用,而不是在这种情况下,使用您的ngOnInit()初始化代码。

1

要每次访问页面时调用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(); 
    } 
}