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.