同じページ上でクエリ文字列パラメータを使用してrouter.navigate
を呼び出しています。この場合、ngOnInit()
は呼び出しません。それはデフォルトですか、それとも何か他のものを追加する必要がありますか?ルータのNavigateは、同じページのときにngOnInitを呼び出さない
10
A
答えて
20
あなたは、ルータが唯一、それは別のルートに移動する部品を破壊し、再作成ActivatedRoute
を注入し、params
constructor(route:ActivatedRoute) {
route.params.subscribe(val => {
// put the code from `ngOnInit` here
});
}
を購読することができます。ルートパラメータまたはクエリパラメータのみが更新されてもルートは同じですが、コンポーネントは破棄されずに再作成されません。
強制的にコンポーネントを再作成する別の方法は、カスタム再利用戦略を使用することです。またAngular2 router 2.0.0 not reloading components when same url loaded with different parameters?を参照してくださいインスタンスが作成されたときに一度だけ呼び出されます
1
NgOnInit
(それを実装する方法はまだ利用でき、多くの情報をがあるように思えません)。同じインスタンスの場合NgOnInit
は再度呼び出されません。それを呼び出すには、作成されたインスタンスを破棄する必要があります。
0
ngOnInitのコードをngAfterViewInitに移動することを検討してください。 後者はルータのナビゲーションで呼び出されたようで、この場合はお手伝いをしてください。
+1
それは本当に起こらない – nadav
6
ルーターでreuseStrategyを調整できます。
constructor(private router: Router) {
// override the route reuse strategy
this.router.routeReuseStrategy.shouldReuseRoute = function() {
return false;
};
}
関連する問題
- 1. Angular2ルータのnavigateByUrl()がngOnInit()を呼び出さない
- 2. 同じコンポーネントに再度ルーティングするときにngOnInitが呼び出されない - 角度2
- 3. WKWebview同じページ内のアンカータグが呼び出されない
- 4. 同じHTMLページの異なるボタンに同じonClick機能を呼び出す
- 5. 戻る時にngOnInitが呼び出されない
- 6. VBが同じDLLを呼び出すときにVBAが呼び出されない理由
- 7. 同じphpページで同じ関数を2回呼び出す
- 8. ngOnInitがrouter.navigateの後に呼び出されていません
- 9. NativeScript Button Tapイベントはナビゲーション後にngOnInitを呼び出さないが、onTapは
- 10. PHP-AJAXの呼び出しは、同じphpファイルの複製ページ
- 11. ngOnInitメソッドはいつ呼び出されますか?
- 12. 同じファイルを同時に呼び出すときにPHPがブロックされる
- 13. 同じコンポーネントに異なるデータが読み込まれているときにngOnInitが呼び出されない
- 14. EmberがルータのsetupControllerを呼び出さない
- 15. ルータの名前のないコントローラとメソッドを呼び出す
- 16. ルータで同じコントローラの2つのメソッドを呼び出す方法
- 17. "viewDidLayoutSubviews"に一度しか呼び出されないのと同じですか?
- 18. TabHostと同じアクティビティを呼び出す
- 19. ngOnInitとコンストラクターが2回呼び出される
- 20. パラメータと異なるオブジェクトで呼び出された同じメソッド
- 21. 注入可能クラスがインスタンス化されたときにngOnInitが呼び出されない
- 22. java.lang.IllegalStateException:ApplicationAssociate ctorがFacesConfigParser.contextInitialized()と同じ呼び出しスタックで呼び出されていない
- 23. javaの同じパッケージと同じディレクトリ内のクラスを呼び出す方法は?
- 24. ngOnInitがコンポーネントライフタイムの途中で呼び出されました
- 25. 同じビューのActionLinkをクリックしてページを呼び出すには
- 26. APIKitルータを呼び出す前にHTTPエンドポイントを呼び出す
- 27. onReceiveが呼び出されないときに呼び出される
- 28. なぜ同じ値でもない同じ変数を呼び出す
- 29. segueで呼び出されたのと同じViewController
- 30. 同じページでYUI.addを同じモジュールに対して複数回呼び出すことは安全ですか?
Thx、素晴らしい解決策。そして、私はきれいだと思う。 – AntiCZ