2017-06-03 28 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 }); 
    } 
}); 
相关问题