$timeout 딜레이 후 함수 실행

개요

재시작 버튼을 눌렀을 때 일정 시간동안 block 상태를 만들고

이후 다시 실행될 수 있게끔 해야 한다.


해결

  • $timeout 함수 사용
ct.instanceRestart = function (guid, index) {

    ct.isRestart = true;
    var appPromise = applicationService.restartAppInstance(guid, index);
        $timeout(function() {
            ct.isRestart = false;
        }, 5000);
  • html 에서는 ng-disabled 사용
<button type="button" name="button" ng-disabled="contents.isRestart" ng-click="contents.instanceRestart(contents.app.guid, statItem.id);"><span class="ico">재시작</span></button>

화면

실행 후

$timeout1

5초 뒤

$timeout


Reference

How do I enable a button after a delay using AngularJS?

Comments