Sto aprendo una finestra modale utilizzando $ uibModal.open da un altro controller e devo essere avvisato quando la finestra modale è stata chiusa completamente (e non durante la chiusura). ..) quindi sarò in grado di eseguire una funzione.
Il codice che apre la modale è come segue:
var modalInstance = $uibModal.open({
templateUrl: "myModalContent.html",
controller: "termModalCtrl",
windowClass: 'app-modal-window',
resolve: {
'params': function() { return id }
}
});
Ho visto alcune soluzioni proposte da usare:
modalInstance.result.then(function(result) {
});
Il problema è che la funzione di callback viene chiamata prima della chiusura effettiva della finestra modale (quando la finestra modale è ancora aperta) e questo non è il comportamento che voglio perché significa che cattura l'evento "chiusura" e non l'evento "chiuso" del modale.
C'è un modo pulito e semplice per implementare questo? Sarei sorpreso se non dal momento che questo comportamento è molto comune in qualsiasi framework UI sul pianeta ...
Please help!
ho provato la soluzione, ma non funziona - sto ottenendo un'eccezione "Impossibile ottenere la proprietà 'then' di riferimento non definito o nullo ". sembra che la proprietà 'chiusa' sia in qualche modo indefinita per la promessa restituita dal metodo aperto ... –
No. Rimuovi modalInstance.result.then ... dal tuo codice. – Srijith
Per farlo funzionare, dobbiamo chiudere il popup usando $ uibModalInstance.close ('cancel'); ma NON usare la funzione di licenziamento. –