2017-09-26 1 views
2

Ich habe einen globalen Eventbus auf Vue2. Das Ereignis wird von einer untergeordneten Komponente erfasst und zeigt einen modalen Bootstrap-Popup-Dialog.

Emit:

mounted: function() { 
    setTimeout(() => { 
     this.showInfoDialog(); 
    }, 3000); 
}, 
... 
showInfoDialog: function() { 
     eventBus.$emit('showInfoDialog'); 
     this.infoDialogDisplayed = true; 
} 

Die Ereignis-Listener auf untergeordnete Komponente wie folgt aussehen:

created: function() { 
    eventBus.$on('showInfoDialog', this.onShowDialog); 
}, 
... 
onShowDialog: function() { 
    $('#info-modal').modal('show'); 
}, 

Nach dem Dialog zeigt ich eine "Unresponsive Seite" alert bin immer die manchmal passiert (es ist nicht wiederholbar).

Soll der $ emit in einem $ nextTick aufgerufen werden? Was könnte das Problem sein?

+0

Versuchen Sie, Log-Kommentare zu den Funktionen hinzuzufügen, um zu sehen, ob etwas mehr als erwartet aufgerufen wird. – d00dle

+1

Welche Beziehung besteht zwischen den beiden Codeabschnitten, die Sie angezeigt haben? Ist alles auf einer Komponente? Oder separate Komponenten? – thanksd

+0

Dank @ d00dle Sie das Problem getroffen, wird das Intervall 3 mal ausgeführt! Irgendwelche Hinweise darauf, was es sein kann? – jigarzon

Antwort

0

Ich möchte jedem Kommentar danken. Es hatte nichts mit Vue.JS oder Javascript zu tun. Das Problem war mit einer anderen Bibliothek, die ich verwendete, die die Seite hängte, weil sie gesendet wurde, als der Dialog geschlossen wurde.

Verwandte Themen