访问/退出页面时$ locationChangeSuccess触发4次

时间:2017-10-11 14:40:13

标签: javascript angularjs

尝试在多次进入/退出页面时调试$ locationChangeSuccess。从我的测试中可以看出,当它进入它时,它会在退出时发射两次,然后发射4次。代码在最开始时放在控制器内。我做错了什么?

首先输入它没有被触发。

第一次退出时

触发一次

第二次进入时

被触发一次

下次两次触发它并在

之后再乘以4
  var counter = 0;
  $rootScope.$on('$locationChangeSuccess', function (event, current, previous) {
      console.log(current);
      console.log(previous);
      console.log(counter);
      console.log('------------');
      counter++
 });

1 个答案:

答案 0 :(得分:1)

您的代码不应该在控制器内。它应该是内部运行方法。

app.run(['$rootScope', function($rootScope) {
$rootScope.$on('$locationChangeSuccess', function (event, current, previous){
  console.log(current);
  console.log(previous);
  console.log(counter);
  console.log('------------');
  counter++ 
});
}]);