Programing

AngularJS.

lottogame 2021. 1. 6. 07:41
반응형

AngularJS. angular-ui 모달을 호출 할 때 $ timeout 지우기


$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
        });
    } })

어떻게 할 수 있습니까?

추신 : 잘못된 코드 형식으로 죄송합니다. 이유는 모르겠지만 더 잘 포맷 할 수는 없습니다. 여기에 코드를 복제 했습니다 .


$timeout서비스는 반환 Promise시간 제한을 취소하는 데 사용할 수있는 개체를.

// Start a timeout
var promise = $timeout(function() {}, 1000);

// Stop the pending timeout
$timeout.cancel(promise);

보류중인 모든 시간 초과를 취소하려면 프라 미스 목록을 유지하고 모달을 열 때 전체 목록을 취소해야합니다.


이렇게하여 스스로 취소하도록 할 수도 있습니다.

(function(){
  var timer = $timeout(function(){
    console.log(timer.$$timeoutId);
    $timeout.cancel(timer);
  }, 1000);
})();

참조 URL : https://stackoverflow.com/questions/21018796/angularjs-clear-timeout-when-invoking-angular-ui-modal

반응형