2016-02-17 2 views
0

У меня есть файл page.html и controller.js.Показаны метки перед setTimeout в AngularJS

Я хочу, чтобы метка отображалась после ввода текстового поля, а затем через 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); 
    }; 
}); 

Проблема заключается в том, что при вводе в текстовое поле, после завершения ввода я получаю предупреждение, а затем появляется метка проверки. I`m не уверен, что мне нужно сделать, чтобы получить

userfinshestyping -> показать этикетку -> pausefor 2 секунды -> показать Alertbox

ответ

5

Ваша линия setTimeout(alertToCheck(), 2000); следует читать setTimeout(alertToCheck, 2000);

Размещение() после того, как имя функции вызывает его немедленное вызов

Смежные вопросы