2017-02-22 22 views
1

すでにインスタンス化されているページに戻ったときにngOnInit()メソッドが呼び出されないことに気付きました。私はこれに他の方法を使わなければなりませんか?特定のページにアクセスするたびに呼び出されるメソッドが必要です。戻る時にngOnInitが呼び出されない

EDIT はすでに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を使用する必要があります。あなたのコンポーネントのコンテンツは、URL内のコードに依存している場合たとえば、あなたがこのような方法で、OnDestroy使用する必要があります。

export class GRMTasksComponent implements OnInit, OnDestroy { 

    subParams: Subscription; 

    ngOnInit() { 
     this.subParams = this._route.params.subscribe(params => { 
      //some code... 
     }); 
    } 

    ngOnDestroy() { 
     this.subParams.unsubscribe(); 
    } 
} 
関連する問題