如何使工作ng-click和$timeout

How to make work ng-click and $timeout

本文关键字:timeout ng-click 何使 工作      更新时间:2023-09-26

嗯,我有一些函数通过ng-click调用。
例如,该函数将变量a设置为true,几秒钟后该变量将变为false
函数如下所示:

$scope.do = function (){
    $scope.a = true;
    $timeout($scope.a=false,5000);
  }

但是当我调用这个函数时,变量a立即变成了false,而没有等待5秒。
我做的每件事都对吗?Plnkr的演示。
如何在点击AngularJS后实现"等待"?

$timeout(以及原生javascript setTimeout)期望函数作为第一个参数:

$scope.do = function() {
    $scope.a = true;
    $timeout(function() {
        $scope.a = false;
    }, 5000);
};

您提供的函数引用,将在计时器启动后被调用。

演示:http://plnkr.co/edit/Rg82R98gViWJ8YZtJD8z?p=preview

应该这样做

$scope.do = function (){
    $scope.a = true;
    $timeout(function(){$scope.a=false},5000);
  }