在实例化控制器后,$ stateChangeSuccess被触发

时间:2015-03-10 16:05:22

标签: angularjs angular-ui-router

路线配置:

        $stateProvider.state('root', {
            url: "/",
            template: '<div ui-view></div>'
          })
      .state('root.child',{
         url: '/child',
         templateUrl: 'some.html'
         controller: function(){
             console.log('child')
         }
      });

StateChangeStart监听器:

        $scope.$on('$stateChangeStart', function (event, state, params, fromState, fromParams) {
         console.log('state change start');
            }
        });

当我导航到状态'root.child'时,首先在控制台上打印'状态更改开始',然后打印'child'。 但是当我在子状态下刷新页面或直接点击网址'/ child'时,首先打印'child'然后打印'state change start'。请帮忙。

1 个答案:

答案 0 :(得分:0)

您需要先致电event.preventDefault();

为了您的兴趣,如果您想在$state内运行$stateChangeStart,则无法使用。这是一个众所周知的问题。