我打電話router.navigate
在同一頁上有一些查詢字符串參數。在這種情況下,ngOnInit()
不會調用。是默認還是需要添加其他內容?路由器導航不會調用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
6
您可以在路由器上調整reuseStrategy。
constructor(private router: Router) {
// override the route reuse strategy
this.router.routeReuseStrategy.shouldReuseRoute = function() {
return false;
};
}
相關問題
- 1. React路由器導航不會更改頁面/組件
- 2. 骨幹路由器,頁面加載導航不會發生
- 3. ngOnInit在路由到相同的組件時不會被調用 - Angular 2
- 4. Angular2路由導航到相同的頁面
- 5. auth0路由器不會觸發導航
- 6. ngOnInit當相同的組件被加載不同的數據時不會調用
- 7. RESTFUL路由使用相同的頁面
- 8. 沒有鐵路路由器的流星頁面導航
- 9. 導航不同的頁面
- 10. Aurelia路由器導航不起作用
- 11. Webforms路由 - 相同的簽名與不同的頁面?
- 12. NativeScript按鈕點擊事件不會在導航後調用ngOnInit,但onTap會做
- 13. 如何正確導航到相同和不同的頁面
- 14. 當路由器參數到達路由器路徑之前的角度導航
- 15. 在半個頁面中反應路由器導航
- 16. 導航欄上不同大小的頁面不同頁面
- 17. 相同的頁面JqueryMobile頁面內的導航
- 18. 反應路由器導航
- 19. Ember不會調用路由器的setupController
- 20. 頁面導航3路線
- 21. 反應路由器更改導航,但不使用REDX呈現頁面
- 22. 陣營路由器副路徑調用不同的父路由
- 23. 反應路由器導航不工作
- 24. 如何爲包括UI的路由器不同的導航面板
- 25. 不同的頁面導航欄
- 26. Zend導航和Zend路由器問題 - 找不到正確的活動頁面
- 27. Backbone.js將不會路由到與當前URL相同的URL
- 28. Angularjs路由到不同的佈局頁面使用UI路由器
- 29. 當頁面被路由到
- 30. tr:commandLink操作方法不會導航到下一個頁面。反而會再次加載相同的頁面
Thx,很好的解決方案。乾淨我想。 – AntiCZ