我想知道是否可以让$timeout
在运行后自行取消。通常我看到的是人们说你应该取消$timeout
中$destroy
这样的var timeout = $timeout(function () {
// stuff
});
$scope.$on("$destroy", function(){
$timeout.cancel(timeout);
});
:
var timeout = $timeout(function () {
// stuff
$timeout.cancel(timeout);
});
但是,这样做是否可以:
{{1}}
答案 0 :(得分:0)
从页面中删除DOM元素时, AngularJS将触发$ destroy事件 范围。这让我们有机会取消任何 我们可能有的待定计时器。
$ timeout()返回一个promise对象。可以将此对象提供给$ timeout.cancel()函数以取消超时。
$scope.$on('$destroy', function(){
$timeout.cancel(promise);
});