$timeout.cancel($scope.dataTimeout);
});
这里是destroy函数,我想取消所有$ scope.dataTimeout。目前它只取消$ timeout。
$ scope。$ on(“$ destroy”,function(){
puts "Please tell me the array(separated by space, finish by enter twice):"
x = []
input = ' '
while input != ''
input = gets.chomp
x.push input
end
puts x.sort
答案 0 :(得分:3)
由于您是在循环中执行此操作,因此每次迭代都会覆盖$scope.dataTimeout
,因此它只包含对最后$timeout
的引用
您需要创建一个数组,以便能够全部访问它们。
var dataTimeout=[];
然后在循环中:
var timeOut = $timeout(function () {
fetchStatus(job);
}, 1000);
dataTimeout.push( timeOut );
最后取消它们全部循环遍历数组并取消每个实例:
$scope.$on("$destroy", function () {
dataTimeout.forEach(function(timeout){
$timeout.cancel(timeout);
});
});