を移動した場合に呼び出されていない、私のngOnInit
:角度2+ ngOnInit()ルータが自身から(新しいクエリのparams付き)現在のルートに私のhome.component.tsで
ngOnInit() {
console.log("ngoninitcalled");
this.activatedRoute.queryParams.subscribe((params:Params) => {
let refresh = params['refresh'];
if(refresh){
// do something refreshing
}
}
そして、ここでは私のcustomFunction
customFunction(email: string, username:string) {
// do something custom
this.router.navigate([''],{queryParams: {refresh:true}});
}
''ルートは、home.component.tsまたはHomeComponent(上にあるスニペット)にリダイレクトされます。
コンソールログを確認すると、HomeComponentが(this.router.navigate([''], {queryParams: {refresh:true}}
経由で)他のコンポーネントからrefresh paramで呼び出されたとき、ngOnInit()が呼び出されることがわかります。しかし、HomeComponent自体から呼び出された場合(上記のコードのように)、ngOnInit()は呼び出されません。
だから、予想される動作であり、私は安全に(HomeComponent自体からにリダイレクトされている場合ngOnInit
が呼び出されることはありませんと仮定して)手動でngOnInit()
を呼び出すために私のカスタム関数でrouter.navigate
後this.ngOnInit()
を呼び出すことができますか?
あなたはそれが唯一の倍時に初期化コンポーネントに自動的に呼ばれるので、あなたはあなたの関数を作成し、それを呼び出すためにそれを解決することができ、this.ngOnInitを呼び出すことはできません。 – aimprogman
https://medium.com/@juliapassynkova/angular-2-component-reuse-strategy-9f3ddfab23f5 –