嗯,我有一些函数通过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);
}