Zum Hauptinhalt springen

Benutzerdefiniertes JavaScript

Nutzung

Über die Variable Configurator erfolgt der Zugriff auf die Konfigurator-Instanz.

Events

Über den $emitter des Konfigurators kann so beispielsweise auf die verschiedenen Events reagiert werden. Folgende Events stehen zur Verfügung:

Event-NameAuslösegrund
beforeInitEinmalig, bevor der Konfigurator initialisiert wird.
afterInitEinmalig, nachdem der Konfigurator fertig initialisiert ist. (detail.currentState)
beforeRefreshBevor ein Aktualisierungszyklus (Refresh) des Konfigurators startet. (detail.isDirty)
afterRefreshNachdem ein Aktualisierungszyklus abgeschlossen wurde. (detail.isDirty)
fieldChangeSobald ein Feld im Konfigurator verändert wurde. (detail.field)
afterFieldChangeNachdem der durch eine Feldänderung gestartete Updatezyklus fertig durchlaufen wurde. (detail.field)
configurationChangeNachdem der durch eine Feldänderung gestartete Updatezyklus fertig durchlaufen wurde; enthält den kompletten Zustand der Konfiguration.
fieldStructureChangeBei Wiederholungsfeldern: falls eine neue Wiederholung hinzugefügt oder eine bestehende gelöscht wird.
afterGlobalCalculationCalculatedNachdem eine einzelne globale Berechnung ausgewertet wurde. (detail.calculation)
afterGlobalCalculationsCalculatedNachdem alle globalen Berechnungen ausgewertet wurden.
beforeSubcalculationsCalculatedBevor die Unterberechnungen ausgewertet werden.
beforeSubcalculationCalculatedBevor eine einzelne Unterberechnung ausgewertet wird. (detail.key, detail.subcalculation, detail.ruleData)
afterSubcalculationCalculatedNachdem eine einzelne Unterberechnung ausgewertet wurde. (detail.key, detail.result, detail.subcalculation, detail.ruleData)
afterSubcalculationsCalculatedNachdem alle Unterberechnungen ausgewertet wurden. (detail.result)
beforeValidatedBevor der Validierungsprozess gestartet wird.
afterFieldValidatedNachdem ein einzelnes Feld validiert wurde. (detail.field, detail.ruleData)
afterValidatedNachdem der Validierungsprozess vollständig durchlaufen wurde.
beforeVisibilityUpdatedBevor die Sichtbarkeiten von Gruppen und Feldern aktualisiert werden.
beforeInfoVisibilityUpdatedBevor die Sichtbarkeit eines Info-Links aktualisiert wird.
afterInfoVisibilityUpdatedNachdem die Sichtbarkeit eines Info-Links aktualisiert wurde. (detail.isVisible)
afterGroupVisibilityUpdatedNachdem die Sichtbarkeit einer Gruppe aktualisiert wurde. (detail.group, detail.ruleData)
afterFieldVisibilityUpdatedNachdem die Sichtbarkeit eines Feldes aktualisiert wurde. (detail.isVisible, detail.field)
afterFieldValueVisibilityUpdatedNachdem die Sichtbarkeit eines Feldwerts (einer Option) aktualisiert wurde. (detail.isValueVisible, detail.field)
afterVisibilityUpdatedNachdem alle Sichtbarkeiten aktualisiert wurden.
listItemIdUpdatedNachdem die ID des Listen-/Merklisteneintrags aktualisiert wurde.
afterPriceUpdatedNachdem der Preis aktualisiert wurde.
afterPriceCalculatedNachdem ein Preis berechnet wurde. (detail.priceType, detail.calculation, detail.ruleData)
afterBasePriceUpdatedNachdem der Grundpreis aktualisiert wurde.
beforeBlockPricesUpdatedBevor die Staffelpreise aktualisiert werden.
afterBlockPriceUpdatedNachdem ein einzelner Staffelpreis aktualisiert wurde. (detail.priceIndex)
afterBlockPricesUpdatedNachdem alle Staffelpreise aktualisiert wurden.
afterDeliveryTimeUpdatedNachdem die Lieferzeit aktualisiert wurde.
afterImageUpdatedNachdem das Produktbild aktualisiert wurde.
afterProductNumberUpdatedNachdem die Produktnummer aktualisiert wurde. (detail.productNumber)
beforeDynamicTextUpdatedBevor ein dynamischer Text aktualisiert wird. (detail.ruleData)
afterDynamicTextUpdatedNachdem ein dynamischer Text aktualisiert wurde. (detail.ruleData)

Beispiele

Bei jeder Feldänderung wird der neue Wert des Feldes ausgegeben

Werte von Mehrfachauswahlfeldern werden kommagetrennt ausgegeben

{% code lineNumbers="true" %}

Configurator.$emitter.subscribe('fieldChange', function(e){
let currentValue = e.detail.field.value();

if(Array.isArray(currentValue)){
currentValue = currentValue.map(function(v){
return v.value;
}).join(', ');
}
alert(e.detail.field.config.label + ' wurde verändert. Aktueller Wert: '+ currentValue);
});

{% endcode %}

Auf dieser Seite