0
我有一個嵌套的視圖和嵌套狀態的父狀態。嵌套視圖是一個IP列表,這是一個昂貴的調用服務器應該只發生在第一次加載。點擊IP應該更新URL並導致traffic.details
狀態更新,但不更新列表。該網址應如下所示:/traffic/details?ip=127.0.0.1
在UI-Route中,如何防止父狀態銷燬嵌套視圖?
父網址爲/traffic?ip
和ip
可用於所有嵌套狀態。後做:
$state.transitionTo("traffic.details", { ip: "127.0.0.1"});
兩種方案:
它將更新網址爲目的而破壞並重新創建嵌套的意見。
如果我
preventDefault()
在父狀態$scope.$on('$stateChangeStart')
它不會重新加載嵌套的意見,並重新加載traffic.details
狀態(預期的行爲),但它不會更新URL。
如何在不更新其嵌套視圖的情況下更新父狀態的URL?
我做了類似於你的建議。我向所有子路由添加了'?ip',在父作用域中留下了共享邏輯並刪除了任何提及的event.preventDefault()。我認爲你的版本通過在相同的作用域/路由中使用'?ip'和共享代碼來使得它更加清晰。 –
當用戶刷新頁面時,以上不起作用。這是因爲在範圍從路由可用之前加載父範圍。我將不得不嘗試你提到的方法。 –
您對我的解決方案有任何好運嗎? –