ng-hide не работает с 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);

После того, как я бегу, результат показывается "Первый". После того, как значение счетчика достигло 4, а $scope.timeout изменилось на true, результат все еще показывает "Первый" вместо "Второй".

Спасибо.

1 ответ

Решение

setInterval не оборачивается $scope.$apply()Либо, используйте угловой при условии $interval или добавить $scope.$apply(); в вашей функции setInterval.

Другие вопросы по тегам