Wie kann ich das Modal Open - Event abfangen?

Hi all,

ich möchte mich auf das modal open - Event subscriben, aber bekomme es leider nicht hin.
In der Developers-Doku ist folgendes Beispiel aufgeführt, doch leider kann ich nur wenig damit anfangen.

import Plugin from 'src/plugin-system/plugin.class';

export default class EventsPlugin extends Plugin {
    init() {
        const plugin = window.PluginManager.getPluginInstanceFromElement(document.querySelector('[data-cookie-permission]'), 'CookiePermission');
        plugin.$emitter.subscribe('hideCookieBar', this.onHideCookieBar);
    }

    onHideCookieBar() {
        alert("The cookie bar has been hidden!");
    }
}

Ich habe folgende Plugin-Bezeichnung für das Modal ausfindig gemacht: AjaxModal (ich hoffe, es ist die richtige)

Das wäre mein Code in meinem Plugin-Init:

const plugin = window.PluginManager.getPluginInstanceFromElement(document.querySelector('.js-pseudo-modal'), 'AjaxModal');
plugin.$emitter.subscribe('onOpen', this.onModalOpen);

Kann mir dabei jemand helfen?

Danke vorab!
Ilja

hallo,

ich würde zu erst überprüfen, ob auch das richtige Plugin selektiert wird. Welche Instanz hat deine Konstante „plugin“?

Im nächsten Schritt ist zu überprüfen, ob das Event „onOpen“ auch wirklich „gepublished“ wird, oder ob eventuell nicht ein anderes Event beim Öffnen des Modals „gepublished“ wird.

vg

Okay, ich habe es geschafft.

init() {
  const modalDataAttr = Feature.isActive('V6_5_0_0') ? 'data-bs-toggle="modal"' : 'data-toggle="modal"';
  const modalPlugin = window.PluginManager.getPluginInstanceFromElement(document.querySelector(`[${modalDataAttr}][data-url]`), 'AjaxModal');
  
  modalPlugin.$emitter.subscribe('ajaxModalOpen', this.onModalOpen.bind(this));
}

onModalOpen(event) {
 // your code here
}
1 „Gefällt mir“