【问题标题】:Showing label before setTimeout in AngularJS在AngularJS中的setTimeout之前显示标签
【发布时间】:2016-02-17 18:23:12
【问题描述】:

我有一个 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 -> 显示标签 -> 暂停 2 秒 -> 显示 Alertbox

【问题讨论】:

    标签: javascript html angularjs settimeout


    【解决方案1】:

    你的setTimeout(alertToCheck(), 2000); 应该是setTimeout(alertToCheck, 2000);

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-11-26
      • 1970-01-01
      • 1970-01-01
      • 2015-01-20
      • 2022-08-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多