如果多个状态具有相同的控制器

时间:2016-02-22 14:23:16

标签: angularjs angularjs-scope angular-ui-router

我在两种状态下使用单个控制器。如果我在这两种状态中导航,并尝试处理$ stateChangeSuccess事件,我面临的问题是,在每种状态下,事件都会触发两次。

$scope.$on('$stateChangeSuccess', function (ev, to, toParams, from, fromParams) {
        // some code...
    });

我知道这是一个$ scope游戏,但我怎么能处理它。提前谢谢......

1 个答案:

答案 0 :(得分:1)

我相信你应该像这样在$ rootScope上观看$ stateChangeSuccess:

$rootScope.$on('$stateChangeSuccess' function() {
    //code
};

如果不是这样,这里有一些关于controller scope的好信息。从那以后,您应该能够观看这两个事件:$viewContentLoaded$destroy

$scope.$on('$viewContentLoaded', function() {
  console.log('Stuff loaded');
});
$scope.$on('$destroy', function() {
  console.log('Destroyed');
})

从那里你应该能够确定范围问题。