2014-09-16 3 views
5

나는 angularjs 모달 서비스를 만들려고합니다. 저는 모달을 여는 컨트롤러를 가지고 있습니다. 모달에서 원래 컨트롤러 함수를 호출하거나 일부 변수에 액세스합니다.이 파트는 이미 만들 수 있습니다. 취소 또는 확인 버튼을 클릭하지 않고 모달을 닫을 수 없습니다. o 모달에서 일부 작업을 수행하고, 일부 werbservices 및 가까운 모달을 수동으로 호출하려고합니다. 아무도 도와 줄 수 있습니까?

나는 여기에 작업 plunker을했다 : plunker

var modalInstance = $modal.open({ 
       templateUrl: 'myModalContent2.html', 
       controller: ModalInstanceCtrl, 
       size: size, 
       scope: $scope 

      }); 
+3

당신은뿐만 아니라 그것을 닫습니다 modal.open에 의해 반환 된 modalInstance를 사용할 수 있도록해야 할 것입니다 : HTTP : //plnkr.co/edit/SpEx6Y?p=preview – PSL

+0

감사합니다. 더 많은 질문이 있다면, 어떤 모달이 이드에 의해 열려 있는지를 알 수있는 방법이 있습니까? modalInstance없이? – John

답변

19

당신이 다음 단계를 수행 할 수 열었다 달러 (A $)의 모달을 닫습니다.

1) 모달을 만들 때 지정한 컨트롤러에 $modalInstance을 삽입하십시오. 당신의 경우에 당신은 그것을 ModalInstanceCtrl이라고 부릅니다.

2) ModalInstanceCtrl.close()을 호출하는 기능이 $modalInstance에 있습니다.

당신의 ModalInstanceCtrl

angular.module('myCoolApp') 
    .controller('ModalInstanceCtrl', function ($scope, $modalInstance) { 

    $scope.closeModal = function(){ 
     $modalInstance.close(); 
    } 

}); 
처럼 보일 것이다
2

$scope.myData='all data can be'; 
 
$scope.myModalInstance = $modal.open({ 
 
    templateUrl: 'app/myOpen.html', 
 
    controller: 'myOpenController', 
 
    size: 'lg', //modal open size large 
 
    backdrop: 'static', 
 
    keyboard: false, 
 
    resolve: { 
 
     myData: function() { 
 
      return $scope.myData; 
 
      } 
 
     } 
 
    }); 
 
$scope.modalClose = function(){ 
 
    $scope.myModalInstance.close(); 
 
}

관련 문제