2014-09-16 16 views
5

Sto cercando di creare un servizio modale angularjs. Ho un controller che apre alcune modali, in quel modale chiamo le funzioni del controller originale o accedo ad alcune variabili, questa parte posso farcela già. Non riesco a chiudere il modale senza fare clic sui pulsanti Annulla o OK, o voglio eseguire alcune operazioni nel modale, chiamare manualmente alcuni werbservices e la modal di chiusura. Qualcuno può aiutarmi?

ho fatto un plunker lavorare qui: plunker

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

      }); 
+3

È possibile utilizzare l'modalInstance restituito da modal.open per chiuderla pure, in modo avrebbe bisogno di fare: http: //plnkr.co/edit/SpEx6Y?p=preview – PSL

+0

Grazie, ha funzionato. solo più domande, c'è un modo per sapere se qualche mod è aperto da id? senza il modalInstance? – John

risposta

19

Per chiudere un $ modale che si è aperto è possibile seguire questi passaggi.

1) Inietti $modalInstance nel controller specificato al momento della creazione del modale. Nel tuo caso l'hai chiamato ModalInstanceCtrl.

2) Avere una funzione nel proprio ModalInstanceCtrl che chiama .close() su $modalInstance.

tua ModalInstanceCtrl dovrebbe essere simile a questo

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(); 
 
}