如何使用ng-click和$ timeout

时间:2014-05-29 12:54:42

标签: javascript angularjs timeout angularjs-ng-click

好吧,我有一些通过ng-click调用的功能 例如,此函数将变量a设置为true,几秒后变量应变为false
功能看起来像这样:

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

但是当我调用此函数时,varibale a会立即变为false,而不会使用5秒。 我做的一切都好吗? 在Plnkr上演示 我怎样才能实现"等待"点击AngularJS后?

2 个答案:

答案 0 :(得分:3)

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

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

您提供的此功能参考将在计时器启动后调用。

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

答案 1 :(得分:2)

这应该

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