在AngularJS中的setTimeout之前显示标签

时间:2016-02-17 18:23:12

标签: javascript html angularjs settimeout

我有一个page.html和controller.js文件。

我希望在输入文本框后显示标签,然后在2秒后弹出警报窗口,然后标签再次隐藏。

到目前为止,我有这个:

page.html中

<div ng-app>
  <h2>Calculate</h2>
  <div ng-controller="controller">
    <form>
      <input type="text" ng-model="name" ng-change="myFunc()" 
        ng-model-options="{debounce: 200}">

      <label ng-show="showMe">Checking</label>
    </form>
  </div>
</div>

controller.js

angular.module('Ctrl', []).controller('controller', function($scope) {

    var alertToCheck = function() {
        alert("Some Message");
        return true;    
    }

    var checked = false;
    $scope.showMe = false;
    $scope.myFunc = function() {

        if(checked == true){
            $scope.cancel(alertToCheck());
            checked = false;
        }
            $scope.showMe = !$scope.showMe;
            setTimeout(alertToCheck(), 2000);
    };
});

问题是当我输入文本框时,一旦完成输入,我会收到警报,然后弹出检查标签。我不知道我需要做什么才能获得

userfinshestyping - &gt; show label - &gt;暂停2秒 - &gt;显示Alertbox

1 个答案:

答案 0 :(得分:5)

您的第setTimeout(alertToCheck(), 2000);行应为setTimeout(alertToCheck, 2000);

在函数名后面放置()会导致它被立即调用