2015-06-18 3 views
5

Immagino che questa sia una risposta abbastanza semplice, ma non riesco a trovare la sintassi corretta.AngularJS: chiamata di funzione alla chiusura modale

ho la mia apertura modale in questo modo,

$scope.assignment = function (groupId) { 
    var modalInstance = $modal.open({ 
     templateUrl: 'assignment_form', 
     controller: 'GroupsAssignmentController', 
     windowClass: 'modal-user-window', 
     resolve: { 
      id: function() { 
       return groupId; 
      } 
     } 
    }); 

Tutto quello che voglio fare è avere una corsa funzione quando il modal è chiusa così la mia schermata principale viene aggiornato.

Non sono sicuro che ciò implichi $ modal.close?

$modal.close({ 
    //getAllGroups(); 
    }); 
+0

$ modal.open (modalOptions) .result.finally (function() { console.log ('modal ha chiuso'); }); – nikhil

risposta

6
modalInstance.result.finally(function(){ 
    // do your work here 
}); 

È inoltre possibile utilizzare poi

then(successCallback, errorCallback, notifyCallback) 

SuccessCallback è excetuted quando la promessa è risolto. errorCallback viene eseguito quando la promessa viene respinta. Infine notifyCallback viene eseguito quando viene notificato.

Nel caso di modale angolare-ui, facendo clic sul fondale si otterrà una promessa respinta. Con questo in mente, il codice potrebbe essere cambiato in:

modalInstance.result.then(function() { 
    alert('Modal success'); 
}, function() { 
    alert('Modal dismissed'); 
}); 
+0

Ciao, grazie per la risposta, solo una rapida domanda di follow-up. Come posso effettivamente tornare da un modal per farlo registrare come un successo? Al momento sto chiudendo i miei modelli quando l'utente fa clic su un pulsante con $ modalInstance.dismiss ('cancel'). Non riesco a convincerlo a eseguire la parte di successo. – user3407039

+0

Sì, è in base alla progettazione. Eseguirà la funzione errorCallback - nel codice sopra, l'avviso ('Modalgeded') verrà chiamato – nikhil

+0

Sì, capisco perché ciò sta accadendo, ma cosa cambio quando chiudo il modal in modo che esegua la parte di successo? Non riesco a trovare una risposta su google. C'è un metodo diverso per licenziare che dovrei usare? – user3407039