Javascript Ui路由器1.0.0.beta1$transitions.on从$rootScope.on(';$statesucture';)成功;,

Javascript Ui路由器1.0.0.beta1$transitions.on从$rootScope.on(';$statesucture';)成功;,,javascript,angularjs,angular-ui-router,angularjs-components,Javascript,Angularjs,Angular Ui Router,Angularjs Components,在我的AngularJS(v.1.5.x)中,我正在使用将基于控制器的状态转换为基于组件的状态 我在捕获状态更改时遇到了问题,而以前使用$rootScope.on(“$statesucture”,…)捕获状态更改时遇到了问题。据我所知,我正在执行所描述的操作,因此我想知道我是否遗漏了一些内容,或者这是否是beta 1版本的一个bug 我还没有转换所有的控制器,只有少数 转换后的图像如下所示(基于从以下位置获得的信息): 导航到这个州效果很好 要将我的代码更新为新的转换逻辑,我要更改以下内容: $

在我的AngularJS(v.1.5.x)中,我正在使用将基于控制器的状态转换为基于组件的状态

我在捕获状态更改时遇到了问题,而以前使用
$rootScope.on(“$statesucture”,…
)捕获状态更改时遇到了问题。据我所知,我正在执行所描述的操作,因此我想知道我是否遗漏了一些内容,或者这是否是beta 1版本的一个bug

我还没有转换所有的控制器,只有少数

转换后的图像如下所示(基于从以下位置获得的信息):

导航到这个州效果很好

要将我的代码更新为新的
转换
逻辑,我要更改以下内容:

$rootScope.$on('$stateChangeSuccess', function(event, toState, toParams, fromState, fromParams){
    if($state.current.name == 'acontrollerbasedstate') // do stuff;
});
为此:

$transitions.onSuccess( { to: 'acontrollerbasedstate', from: '*' }, function() {
    // I've also tried { to: '*', from: '*' }
    console.log('running');
    // do stuff
});
由于它不起作用,我还测试了所有方法:

$transitions.onBefore( { to: '*', from: '*' }, function() {
  console.log('onBefore');
});
$transitions.onEnter( { to: '*', from: '*' }, function() {
  console.log('onEnter');
});
$transitions.onError( { to: '*', from: '*' }, function() {
  console.log('onError');
});
$transitions.onExit( { to: '*', from: '*' }, function() {
  console.log('onExit');
});
$transitions.onFinish( { to: '*', from: '*' }, function() {
  console.log('onFinish');
});
$transitions.onRetain( { to: '*', from: '*' }, function() {
  console.log('onRetain');
});
$transitions.onStart( { to: '*', from: '*' }, function() {
  console.log('onStart');
});
$transitions.onSuccess( { to: '*', from: '*' }, function() {
  console.log('onSuccess');
});
不幸的是,控制台中从未打印任何内容,这意味着
$transitions.onSuccess
的回调函数永远不会执行

//////
UPDATE
//////
我尝试过不将
声明为
或从声明为,它可以工作:

$transitions.onStart({},scrollToTop)


向我们展示您的组件控制器这看起来像是@gyc的副本,我将
$transitions
调用放在一个指令中,因为我想检查那里的状态更改。为什么组件的代码很重要?@DMCISSOKHO,实际上不确定,特别是因为那里没有回复,所以我没有了解问题所在@ghego转换在组件路由上工作。为什么要将逻辑放在指令中?如何注入$transitions?
//////
UPDATE
//////
$transitions.onSuccess({}, function(){
    // here I use $scope.current.name, which for my purposes, works fine for now
});