我在模态控制器中有几个$timeout
表达式
App.controller('ModalCtrl', function ($scope, $timeout) {
for (var i = 0; i < 10; i++) {
(function () {
var timer = $timeout(function () {
console.log('timer')
}, 1000);
})()
}
})
在调用模式时,我需要清除所有计时器:
App.controller('MainCtrl', function ($scope, $modal, $timeout) {
$scope.showMap = function () {
var modal = $modal.open({
templateUrl: 'modalap.html',
controller: 'modalCtrl',
})
modal.result.then(function () { //fires when modal is resolving
}, function () { //fires when modal is invoking
});
} })
我该怎么做呢?
PS对于错误的代码格式,我很抱歉。我不知道为什么,但我不能更好地格式化它。我重复了代码here
发布于 2014-01-09 19:31:52
$timeout
服务返回一个Promise
对象,该对象可用于取消超时。
// Start a timeout
var promise = $timeout(function() {}, 1000);
// Stop the pending timeout
$timeout.cancel(promise);
要取消所有挂起的超时,您需要维护承诺列表,并在打开模式时取消完整列表。
发布于 2015-07-03 04:38:16
你也可以通过这样做让他们自己取消...
(function(){
var timer = $timeout(function(){
console.log(timer.$$timeoutId);
$timeout.cancel(timer);
}, 1000);
})();
https://stackoverflow.com/questions/21018796
复制相似问题