我想在每个页面加载之前重新启动一个服务变量。 看来$ locationChange在某些情况下无法满足这种需求
angular.module('xxx')
...
.service('xxxsvc', [..., function(){
var groups = {};
}
$rootScope.on('$locationChange', function(){
groups = {}
});
}]);
我在页面上使用了serveral指令使用这个服务,似乎$ locationChange并不是在所有指令之前执行的。我想在初始化页面的任何部分之前重新初始化或清除变量。
有人可以提供帮助吗?
答案 0 :(得分:1)
据我所知有stateChangeStart
,因为你甚至可以在操作期间取消它,所以在它之前不会发生任何其他事情。但是我发现您使用的是'$locationChange'
而不是'$stateChangeStart'
,也许这就是问题?
您可以阅读$stateChangeStart
here。
另一个可能的问题是,您是否验证了您的服务完全被调用?除非你强制执行,否则通常不会再次调用控制器初始化。