Как визуализировать угловое представление при изменении модели событиями?

0

Мне нужно скрыть "видимый блок" при нажатии кнопки, но через мгновение снова появится, не нажимая кнопку. Эта версия не работает.

<!DOCTYPE html>
<html ng-app="app">
<script src="angular.min.js"></script>

<body ng-controller="MyController as ctrl">
    <div ng-show="isShow">Visible block</div>
    <button ng-click="ctrl.change()">Hide Block</button>
</body>

<script>
    var app = angular.module('app', []);

    app.controller('MyController', function ($scope) {
        $scope.isShow = true;

        this.change = function() {
            $scope.isShow = false;
            setTimeout(function() {
                $scope.isShow = true;
            }, 1000)
        }
    });
</script>
</html>
Теги:
view
model

1 ответ

0
Лучший ответ

Вам нужно использовать Angular $timeout вместо обычного setTimeout, например:

$timeout(function() {
    $scope.isShow = true;
}, 1000)

Это связано с тем, что setTimeout работает вне $digest; Угловая обертка решает это.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню