2014-12-18 2 views
0

answers here을 보았지만 아직 페이지로드시 내 openModal() 기능을 트리거 할 수 없습니다. 내 컨트롤러 내에서각도 UI 부트 스트랩 페이지로드시 모달 트리거

, 나는 openModal()는 NG 클릭 지시어 나 하나 잘 실행할 수 있도록 않는, (질문하기) 코드를 가지고있는 크롬 콘솔에서 다음을 입력 할 때 :

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()은 컨트롤러에서 정의한 바로 아래에서 호출 할 수 있습니다. 그것은 곧 모달을 열 것입니다.

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

안타깝게도 ( –

+1

) 테스트 해 보니 문제가되지 않았다. 문제 해결을 위해 plunkr을 만들 수 있습니까? – nairys

0

, 내 솔루션은보기에서 ng-init에서 호출되는 다른 방법을 추가했다 이 질문에 너무 늦었지만 누군가에게 유용 할 수 있습니다.

  1. 그것 뿐이다 그래서 <span ng-init="myDialog()"></span>

처럼 HTML 페이지에서 일반 부트 스트랩 모달

$scope.myDialog = function() { 
    $uibModal.open({ 
     templateUrl: 'templatefolder/modal.html', 
     backdrop: 'static', 
     windowClass: 'modal', 
     size: 'lg', 
     controller: function ($scope, $uibModalInstance) { 
      $scope.cancel = function() { 
       $uibModalInstance.dismiss(); 
      }; 
      } 
    }); 
}; 
  • 전화 모달을 만듭니다. 이것은 나를 위해 일하고 그것이 누군가를 위해서도 효과가 있기를 바랍니다.

  • 1

    이 솔루션은 경우 나도 몰라 : 동일한 컨트롤러 내에서 직접 호출 할 수 없습니다 여전히 동안

    +0

    ng-init 해냈습니다! – Dhruv

    관련 문제