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, результат все еще отображается "First" вместо "Second".
Спасибо.
setInterval не завершается в $scope.$apply()
Либо используйте угловой заданный $interval
или добавьте $scope.$apply();
в вашей функции setInterval.
$scope.$apply()
в конце обратного вызова.