javascript - 如何使 ng-click 和 $timeout 工作

标签 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 实现点击后“等待”?

最佳答案

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

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

您提供的此函数引用将在计时器结束后被调用。

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

关于javascript - 如何使 ng-click 和 $timeout 工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23933840/

相关文章:

javascript - 当 float 元素在视口(viewport)之外时,如何获取它的左偏移量?

javascript - 更改指令中的范围值

sql - 如何在 node.js 中使用 Spring MVC

C# MVC 使用 jquery 创建基于计时器的自动注销?

http - 重试 http 请求 RoundTrip

javascript - 发送 keyup 事件时如何避免竞争条件

javascript - typescript 类 : constructor and method

javascript - 从 swift 接收 POST JSON 时刷新网页

AngularJS : Load js file through UI router

php - file_get_contents 和 file_put_contents 的 FTP 超时