ng-hide 不适用于 setInterval
ng-hide not working with setInterval
HTML:
<div ng-hide="!timeout">
First
</div>
<div ng-hide="timeout">
Second
</div>
JS:
var counter = 0;
$scope.timeout = false;
var interval = setInterval(function loop() {
if (++counter == 4){
clearInterval(interval);
$scope.timeout = true;
}
return loop
}(), 5000);
我运行后,结果显示"First"。在计数器达到 4 并且 $scope.timeout 更改为 true 后,结果仍然显示 "First" 而不是 "Second".
谢谢。
setInterval 没有包含在 $scope.$apply()
或者,使用 $interval
提供的 angular 或在您的 setInterval 函数中添加 $scope.$apply();
。
HTML:
<div ng-hide="!timeout">
First
</div>
<div ng-hide="timeout">
Second
</div>
JS:
var counter = 0;
$scope.timeout = false;
var interval = setInterval(function loop() {
if (++counter == 4){
clearInterval(interval);
$scope.timeout = true;
}
return loop
}(), 5000);
我运行后,结果显示"First"。在计数器达到 4 并且 $scope.timeout 更改为 true 后,结果仍然显示 "First" 而不是 "Second".
谢谢。
setInterval 没有包含在 $scope.$apply()
或者,使用 $interval
提供的 angular 或在您的 setInterval 函数中添加 $scope.$apply();
。