嗨,我想删除Angular中所有正在运行的$interval
。在我的页面中有很多$ interval,然后单击按钮,我要删除所有的interval.i怎么做。
任何帮助表示赞赏。
最佳答案
根据documentation,$interval
返回一个promise,并且可以使用$interval.cancel(promise)
取消间隔。
我看不到任何取消所有间隔的方法,但是如果将返回的promise保留在数组中,则可以对其进行迭代以将其全部取消。
var intervals = []
intervals.push($interval(function() { /*doStuff*/ }, /*timeout*/));
intervals.push($interval(function() { /*doDifferentStuff*/ }, /*timeout*/));
...
angular.forEach(intervals, function(interval) {
$interval.cancel(interval);
});
intervals.length = 0; //clear the array
如果您的时间间隔分散在不同的 Controller 上,请使用一项服务来跟踪它们。
关于angularjs - 如何在AngularJS中删除所有正在运行的$ interval?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25420311/