是否可以在全局配置某些內容,以便每次輸入新路由時都會檢查前一個路由是以/ modal開頭還是不是不刷新控制器,只需從堆棧中刪除頂層模式?Angular-UI路由器,如果來自/模態路由,則不會刷新
我想我可以通過reloadOnSearch和使用搜索參數來實現這一點,但是之後我必須設置整個網站上的每條路線來設置reloadOnSearch,因爲網站上的任何路線都可能啓動模式,因此這是不可取的。
任何幫助真的不勝感激。
是否可以在全局配置某些內容,以便每次輸入新路由時都會檢查前一個路由是以/ modal開頭還是不是不刷新控制器,只需從堆棧中刪除頂層模式?Angular-UI路由器,如果來自/模態路由,則不會刷新
我想我可以通過reloadOnSearch和使用搜索參數來實現這一點,但是之後我必須設置整個網站上的每條路線來設置reloadOnSearch,因爲網站上的任何路線都可能啓動模式,因此這是不可取的。
任何幫助真的不勝感激。
簡單角路線,你可以這樣做:
yourApp.run(function($rootScope, $location){
$rootScope.$on('$routeChangeStart', function(evt, next, current) {
// next: The next URL to which we are attempting to navigate
// current: The URL that we are on before the route change
if (current == 'modal1'){
evt.preventDefault();
}
});
})
爲了調整這angular ui
,只是改變$routeChangeStart
到相關的一個($stateChangeStart
,我認爲)。
這很接近,但問題是,如果用戶從模態1移動到新狀態(但還沒有倒退),則默認操作將被阻止。這隻有在用戶退後或模式被解僱時才需要工作。 – jonhobbs
我認爲這是合理的把你的狀態配置在這裏 –
爲什麼你要通過路由器,如果你只是想關閉模式? – illiptic
當我從/ state1到/ modal1然後到/ modal2時,我希望URL更改並且後退按鈕可以回到歷史記錄中的前一個狀態。但是,當你回到/ modal1時,它應該關閉第二個模態,然後當你回到/ state1時它應該關閉第一個模態。這一切都不應該重新載入已經在模態下愉快地坐着的state1。 – jonhobbs