2017-03-14 9 views
2

Wie kann ich prüfen, ob ein modales Fenster geöffnet ist?Überprüfen Sie, ob das Modding von ng bootstrap bereits geöffnet ist

definiere ich eine Eigenschaft wie dieser

modalInstance: NgbModalRef; 

und instanziiert die modale wie diese

this.modalInstance = this.modalService.open(UpdateModalContent); 

Ich kann keine nativen Eigenschaft finden wie this.modalReminderInstance.isOpen

+0

, warum Sie nicht nur eine Variable, wenn Sie die Modal öffnen und diese Variable überprüfen, um herauszufinden, ob es geöffnet ist oder nicht? Spart herum – 72GM

Antwort

1

Wenn Sie das Setup-modalInstance es Gibt eine Zusage zurück, während das Modal gesetzt ist, dass die Zusage auf pending gesetzt ist. Wenn das Modal geschlossen wird, wird der Promise-Status auf t gesetzt o entweder aufgelöst oder abgelehnt. Wenn eine Zusage aufgelöst/abgewiesen wird, wird einer seiner Handler in der .then-Methode ausgeführt.

var isModalOpen = false; 
function openModal() { 
    isModalOpen = true; 
    modalInstance = $uibModal.open({...}) 
     .result.then(function() { 
      // do something when resolved 
     }); 
} 

Eine andere Möglichkeit ist es, die Callback-Methoden .open liefert Ihnen

Die offene Methode gibt eine modale Instanz, ein Objekt mit den folgenden Eigenschaften zu verwenden:

geöffnet (Typ: Versprechen) - Wird aufgelöst, wenn nach dem Herunterladen der Inhaltsvorlage und dem Auflösen aller Variablen ein Modal geöffnet wird.

geschlossen (Typ: Versprechen) - Wird aufgelöst, wenn ein Modal geschlossen und die Animation beendet wird.

var isModalOpen = false; 

function openModal() { 
    var modalInstance = $uibModal.open({...}); 

    modalInstance.opened.then(function() { 
      isModalOpen = true; 
     }); 

    modalInstance.closed.then(function() { 
      isModalOpen = false; 
     }); 
} 
Verwandte Themen