我对angularjs中的计时器有一个简单的问题。我在页面上有2个窗格。 (左和右)点击左侧的条目,每隔10秒通过GET请求加载右侧的内容(这是我使用计时器的地方)。现在点击左侧的另一个条目会在右侧加载一些其他内容(通过GET每10秒)。现在我的问题是旧计时器继续运行并每10秒发送一次GET请求。什么是解决这个问题的好方法?
提前致谢。
答案 0 :(得分:2)
使用$timeout.cancel()
并向其传递超时承诺的参考。
function someDelayedFunc(){
//...
}
$scope.timeoutPromise = $timeout(someDelayedFunc, 10000);
function cancelExistingTimout(){
$timeout.cancel($scope.timeoutPromise );
}