2014-12-18 3 views
0

Пока я смотрел на answers here, я все еще не могу запустить функцию openModal() при загрузке страницы.Угловой-UI Bootstrap Модальный триггер при загрузке страницы

В мой контроллер, у меня есть код (ниже вопрос), который не позволяет openModal() вызвать штраф либо из директивы нг-клик или при входе в следующее в консоли Chrome:

angular.element($0).scope().openModal()

Моя проблема заключается в том, что я пытаюсь условно открыть модальную загрузку страницы. Мой текущий код:

$scope.openModal = function (size) { 

    modalInstance = $modal.open({ 
     templateUrl: 'myModalContent.html', 
     controller: 'pageBuilder', 
     size: 'lg', 
     resolve: { 
      items: function() { 
       return $scope.chosenDeploymentSchedule; 
      } 
     } 
    }); 
}; 

angular.element(document).ready(function() { 

// $scope.openModal(); 
    console.log('Hello World'); 
}); 

я получаю мою Hello World печати, но когда я пытаюсь раскомментирован $scope.openModal();, я получаю бесконечный цикл undefined + Hello World распечатывания.

ответ

0

Вы можете позвонить по телефону $scope.openModal() непосредственно под тем местом, где вы определяете его в контроллере. Он сразу откроет модальность.

+0

К сожалению, нет :( –

+1

Я тестировал его, и он отлично работал для меня. Можете ли вы создать plunkr для устранения неполадок? – nairys

0

Пока еще не в состоянии назвать это непосредственно из того же контроллера, мое решение было добавить еще один метод, который вызывается из ng-init в представлении:

$scope.launchModalConditionally = function(){ 
    if(!$scope.gotCredentials){ 
     $scope.openModal(); 
    } 
}; 
1

Я не знаю, если это решение слишком поздно для этого вопроса, но может быть полезным для кого-то.

  1. Создать нормальный загрузчик модальным

    $scope.myDialog = function() { 
        $uibModal.open({ 
         templateUrl: 'templatefolder/modal.html', 
         backdrop: 'static', 
         windowClass: 'modal', 
         size: 'lg', 
         controller: function ($scope, $uibModalInstance) { 
          $scope.cancel = function() { 
           $uibModalInstance.dismiss(); 
          }; 
          } 
        }); 
    }; 
    
  2. вызов модального в вашей HTML страницы, как так <span ng-init="myDialog()"></span>

Вот и все. Это работает для меня, и я надеюсь, что это сработает и для кого-то.

+0

ng-init сделал это! – Dhruv

Смежные вопросы