StateManager update Funktionsaufruf

Aloha,

aktuell versuche ich per StateManager die Update funktion eines neu erstellten jQuery Plugins aufzurufen.

 StateManager.updatePlugin('.selector', 'pluginName');

Es wird auch eine Funktion im Plugin aufgerufen, jedoch nicht die, die ich laut Beschreibung erwartet hätte. Destroy() wird ausgeführt.
Entferne ich die Destroy methode gibts in der Konsole leider nur noch ein Hinweis

Plugin pluginName should have a custom destroy method!

Woran liegt das? Und wie rufe ich nun eigentlich wirklich die Update Funktion auf?
Gibt es eine Möglichkeit noch andere plugin Funktionen aufzurufen?

Vielen Dank im voraus.

 

Hallo @v0i‍,

die Methode “updatePlugin” sorgt dafür dass das Plugin neu initialisiert wird. Daher wird erst die “destory” & danach wieder die “init”-Methode geworfen. Die “update”-Methode innerhalb deines Plugins wird gefeuert, wenn zwischen den States gewechselt wird z.B. durch einen Browser Resize oder Orientation Change.

Viele Grüße,
Stephan Pohl  Shopware

Ah, ok, das erklärt dieses Verhalten. Danke sehr!

Gibt es denn eine Möglichkeit andere Funktionen des eigenen Plugins aufzurufen bzw. die Instanz des Plugins über den StateManager zu bekommen?

@v0i‍, über den StateManager kommst du nicht an das Plugin ran, aber du kommst an die Instanz über das Element ran. Wir binden die jeweilige Plugin-Instanz per jQuery „.data()“ an das Element. Unseren Produkt-Slider z.B. bekommst du über „$(’.product-slider’).data(‚plugin_swProductSlider‘)“. Ersetze einfach „swProductSlider“ mit dem Namen deines Plugins.

Viele Grüße,
Stephan Pohl  Shopware

Das hilft mir weiter denke ich.

Danke nochmals :slight_smile: