【问题标题】:How to make work ng-click and $timeout如何使工作 ng-click 和 $timeout
【发布时间】:2014-05-29 12:54:41
【问题描述】:

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

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

但是当我调用这个函数时,变量 a 立即变为 false,无需等待 5 秒。
我做得对吗?
Plnkr上的演示。
使用AngularJS点击后如何实现“等待”?

【问题讨论】:

    标签: javascript angularjs timeout angularjs-ng-click


    【解决方案1】:

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

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

    您提供的这个函数引用,将在计时器到时后被调用。

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

    【讨论】:

    • 我的错。非常感谢!
    【解决方案2】:

    应该这样做

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

    【讨论】:

      猜你喜欢
      • 2013-01-06
      • 1970-01-01
      • 2017-05-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-24
      • 2015-05-19
      相关资源
      最近更新 更多