0
例如,當前URL是「http://localhost/#/mail」。我做了一些行動,我想去下一個網址:
$location.path("mail/inbox/3")
它的效果很好。我在另一個控制器與另一個URL。但是,當我點擊「後退」瀏覽器按鈕,我希望能夠返回到「郵件」路線,而不是它,我去了「郵件/收件箱」路線。爲什麼?我該如何解決它?因爲這對我不正確。謝謝。
例如,當前URL是「http://localhost/#/mail」。我做了一些行動,我想去下一個網址:
$location.path("mail/inbox/3")
它的效果很好。我在另一個控制器與另一個URL。但是,當我點擊「後退」瀏覽器按鈕,我希望能夠返回到「郵件」路線,而不是它,我去了「郵件/收件箱」路線。爲什麼?我該如何解決它?因爲這對我不正確。謝謝。
當你火了這個寶貝:
$location.path("mail/inbox/3")
不要記得,它通過when('mail')
和when('mail/inbox')
走過達到when('/mail/inbox/:number')
。路線從mail -> inbox -> #3
開始。這就是爲什麼當你回擊到mail/inbox
。
這是一個混亂的情況下解決。當事情很簡單時,ng-router
或ui-router
是好的,但隨着應用程序的增長,像你這樣的錯誤是不可避免的。
在我的項目中,我禁用html5Mode
與$locationProvider.html5Mode(false);
,基本上禁用後退按鈕。並在App內添加自定義後退按鈕以供用戶回溯。
該解決方案有助於:
我希望這有助於。
你確定你不是不小心導航到/ inbox之間?因爲你所說的沒有意義 –
不能。從「郵件」到「郵件/收件箱/:身份證」沒有「郵件/收件箱」 – malcoauri
你能提供一個小提琴來重現這個問題嗎?我在我的應用程序中有類似的情況,它工作得很好 –