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();