在AngularJS中的setTimeout之前显示标签

Jim*_*mie 0 html javascript settimeout angularjs

我有一个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>
Run Code Online (Sandbox Code Playgroud)

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);
    };
});
Run Code Online (Sandbox Code Playgroud)

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

userfinshestyping - > show label - > pausefor 2秒 - > show Alertbox

jmc*_*riz 5

你的行setTimeout(alertToCheck(), 2000);应该阅读setTimeout(alertToCheck, 2000);

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