如何使用$ transitions服务获取状态参数? (新的ui路由器)

时间:2016-06-13 14:21:07

标签: javascript angularjs angular-ui-router

我正在使用 ui-router 1.0.0-alpha.3。 旧事件are deprecated there

所以我试图转换

  $rootScope.$on('$stateChangeStart', (event, toState) => {
    //...
  });
使用 $ transitions.onStart hook -

进行新的处理方式
  $transitions.onStart( {}, function($state, $transition$) {
      //...
  });

在这种情况下,我可以在哪里获得 toState param?

4 个答案:

答案 0 :(得分:18)

使用 $ transition $。$ to()

$transitions.onStart( {}, function($transition$) {
    //stateTo === $transition$.$to();
});

答案 1 :(得分:5)

在新版本

中关注文档,检查Class Transition MethodstoState旧版本等于$to()

旧版本:

$scope.$on('$stateChangeSuccess', function(evt, toState, toStateParams, fromState) {
  var oldToState = toState;
}

新版本(当前为1.0.0-beta.3):

$transitions.onSuccess({}, function($transitions){
  var newToState = $transitions.$to();
}

来自Interface HookMatchCriteria

  

此对象用于配置是否根据转换"到状态"为特定转换调用转换挂钩。和#34;来自州"。

希望这有帮助!

答案 2 :(得分:1)

$transitions.onSuccess({ }, function(trans) {
    stateChangeSuccessCallBack(**trans.$to().self**, trans.params('to'));
});

trans。$ to()。self 这样可以提供$stateChangeSuccess(event, **toState**)

中的确切对象

答案 3 :(得分:0)

$transitions.onStart({}, function(transition) {
  console.log(transition.params('to').paramname)
})