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

Ste*_*rov 12 javascript angularjs angular-ui-router

我正在使用ui-router 1.0.0-alpha.3.旧事件在那里被弃用.

所以我想转换

  $rootScope.$on('$stateChangeStart', (event, toState) => {
    //...
  });
Run Code Online (Sandbox Code Playgroud)

使用$ transitions.onStart钩子的新方法-

  $transitions.onStart( {}, function($state, $transition$) {
      //...
  });
Run Code Online (Sandbox Code Playgroud)

我在哪里可以得到使用toState PARAM在这种情况下?

小智 20

使用$ transition $.$ to().

$transitions.onStart( {}, function($transition$) {
    // stateTo === $transition$.$to();
    // Check $transition$.$to().name for state name
});
Run Code Online (Sandbox Code Playgroud)


Huy*_*yen 5

按照文档,检查类转换方法,toState在旧版本中等于$to()新版本

旧版:

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

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

$transitions.onSuccess({}, function($transitions){
  var newToState = $transitions.$to();
}
Run Code Online (Sandbox Code Playgroud)

来自Interface HookMatchCriteria:

此对象用于配置是否根据Transition的"to state"和"from state"为特定转换调用Transition Hook.

希望这有帮助!