嗯,我有一些通过 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/