項目中有一個高級參數配置頁面,進來有個提示,輸入正確的名稱點擊確定才能看到系統高級配置項,如果點擊關閉的話,直接跳轉回之前的頁面。
跳轉好做,直接 $state.go() 就可以.
但獲取之前頁面路由。。。查了半天百度也沒有個答案,都是些 $on、$watch 的方法,嘗試了好幾個,也沒成功。
想着 angular 框架這么高大上,肯定有方法能直接獲取到上一個頁面的路由信息,比如在一個渲染頁面的監聽里,然后參數中存着上個頁面的信息。
接着突然就想到了 $transitions 。查了一下,果然,方法中的參數有 .from().name 的方法可以獲取到上個頁面的路由名稱,獲取到名稱就一切都解決了。
$transitions.onSuccess({}, function (transition) { $rootScope.previewPageState = transition.from().name; console.log($rootScope.previewPageState); })