1

我有2點應用程序的狀態,我採用了棱角分明的UI路由器,下面是我的應用程序的僞代碼,每一件事工作正常,如果我導航使用的用戶界面,SREF和應用程序中的幾個按鈕。UI路由器瀏覽器後退按鈕改變URL甚至放棄過渡稱爲

$stateProvider.state('app.page1', { 
      url: '/page1', 
      templateUrl: 'page1.html', 
     }).state('app.page2', { 
      url: '/page2', 
      templateUrl: 'page2.html', 
     }); 

現在我必須強制執行的條件,一旦用戶在第2頁視圖/狀態,他不能再回到第1頁

$transitions.onBefore({ from: 'app.page2.**' }, (trans) => { 
    trans.abort(); 
}); 

即使我點擊一些按鈕能正常工作它可以導航到page1,但我的代碼會阻止/中止該轉換。

但是當我點擊瀏覽器的後退按鈕,將URL更改爲/應用程序#/第1頁雖然狀態保持爲第2頁只是網址的變化,這不應該。

如何預防呢?任何幫助將不勝感激。

+0

可以提供小提琴? – MehulJoshi

+0

如何顯示小提琴/ plunk中的網址更改? – Abhijeet

+0

只是給出工作代碼,我會在我的環境中進行本地測試。 – MehulJoshi

回答

0

的解決方法,你可以做$ location.path($ urlRouter.location);當您中止轉換以使該狀態具有相同的URL時,這甚至會保留瀏覽器歷史記錄。