2017-06-03 60 views
0

我是angularjs的新手,使用angularjs1.6.4版本與angular-ui-router版本1.0.3。我看到很多帖子通過使用$stateChangeSuccess獲得以前的狀態,但此事件已被棄用,高於UI路由器版本1.0.0 (reference from here)因此,我必須使用$ transitions.onSuccess,但我不明白如何獲得以前的狀態。到目前爲止,當狀態改變時,我已經寫了這個和它的顯示消息「stateChange success」。但我需要一些例子來進一步進行。

App.js:

.run(function ($transitions) { 
    $transitions.onSuccess({}, function() { 
     console.log("statechange success"); 
    }); 
+0

傳遞到的onSuccess(回調函數)記錄在這裏:https://ui-router.github.io /ng1/docs/latest/interfaces/transition.transitionhookfn.html。你可以看到它需要一個Transition對象作爲參數,記錄在這裏:https://ui-router.github.io/ng1/docs/latest/classes/transition.transition-1.html。你可以看到它有一個$ from()方法。 –

+0

我的答案是否適合您的問題?我在我的項目中使用過$ stateChangeSuccess。如果它有效,你可以打勾我的答案 – hasan

回答

1

這就是我想要的。對於回到以前的狀態,使用$ transitions.onSuccess而不是$ stateChangeSuccess刷新一個例子

.run(function ($transitions, $state) { 
    var previousState; 
    var previousStateParameters; 
    $transitions.onSuccess({}, function (transition) { 
     previousState = transition.from().name; 
     previousStateParameters = transition.params('from'); 
    }); 
    $transitions.back = function() { 
     $state.go(previousState, previousStateParameters, { reload: true }); 
    } 
}); 
相關問題