автоматическое закрытие начальной загрузки

0

У меня есть мода bootstrap, которую я хочу закрыть, когда все значения загружены. Ниже приведен код открытия модального -

    function open(){
    console.log("open modal");
    var modalInstance = $modal.open({
        animation: true,
        templateUrl: 'views/view1.html',
        scope: $scope,
    });
};

view1.html

    <div class="modal-header">
    </div>
    <div class="modal-body">
    <div>
        <progressbar class="progress-striped active" max="100" type='success' value="progress"></progressbar>
    </div>
    </div>

Я хочу закрыть модальность, когда значение изменения переменной сферы становится 100, как я могу это сделать?

Теги:
angular-ui-bootstrap

1 ответ

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

Код контроллера

...
function open(){
    console.log("open modal");
    var modalInstance = $modal.open({
        animation: true,
        controller: 'modalController'
        templateUrl: 'views/view1.html',
        scope: $scope,
    });
}) // End of the actual page controller
.controller('modalController', function($scope, $modalInstance, $interval, $timeout) {
    $scope.progress = $scope.$parent.progress;
    $interval(function() { if ($scope.progress < 100) $scope.progress += 1 }, 50);
    $scope.$watch(function() {return $scope.progress}, function() {
        if ($scope.progress >= 100) {
            $timeout(function() {
                $modalInstance.close();
            }, 1000)
        }
    })
})

Для вашей конкретной ситуации:

.controller('modalController', function($scope, $modalInstance, $timeout) {
    $scope.$watch(function() {return $scope.$parent.progress}, function() {
        if ($scope.$parent.progress >= 100) {
            $timeout(function() {
                $modalInstance.close();
            }, 1000)
        }
    })
})

Рабочая скрипка здесь, http://jsfiddle.net/n0fbo3t3/

  • 0
    Изменения области видимости изменяются в первом контроллере, и я хочу следить за обновленными значениями прогресса. Приведенный выше код создает копию переменной прогресса и изменяет ее во втором контроллере.
  • 0
    Да, я просто хотел смоделировать ситуацию в поршне. В вашей ситуации вы захотите вместо этого $ watch $ scope. $ Parent.progress. Я отредактировал свой пост соответственно.
Показать ещё 2 комментария

Ещё вопросы

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