我有一个 Angular JS 应用程序,我想在路由成功更改时每秒执行一次全局操作。所以我创建了一个 .run() 块,在其中我 DI $interval 并在 $routeChangeSuccess 上使用 $interval。奇怪的是,每次换路后,间隔开火的速度越来越快。这是我的代码:
app.run(["$interval", "$rootScope", function($interval, $rootScope){
$rootScope.$on("$routeChangeSuccess", function(event, current){
if(current.$$route.authenticate){
$interval(function(){
console.log("whatever");
}, 1000);
}
});
}]);
总而言之,“随便”控制台日志开始越来越快地触发。是因为$interval是单例,所以每次都会重新创建它吗?但是为什么不删除旧的$interval呢?