Ich weiß, dass es bereits ein Thema dazu sowie eine Dokumentation gibt , aber ich kann es einfach nicht zum Laufen bringen:
Wie kann ich das JavaScript einer UI-Komponente in Magento 2 erweitern?
Ich versuche zu erweitern Magento_Ui/js/form/form
(befindet sich in vendor/magento/module-ui/view/base/web/js/form/form.js
). Also habe ich requirejs-config.js
im view/base
Ordner meiner Module hinzugefügt:
var config = {
map: {
'*': {
"Magento_Ui/js/form/form": "Vendor_Module/js/form/form"
}
}
};
Und in meiner Akte base/web/js/form/form.js
:
define([
"Magento_Ui/js/form/form"
], function(FormComponent){
"use strict";
/**
* Rewrite original UI Component:
*/
return FormComponent.extend({});
});
Aber aus irgendeinem Grund FormComponent
ist nicht die UI-Komponente, die ich zu erweitern versuche, sondern undefined
.
Laut Dokumentation sollte dies funktionieren, tut es aber nicht. Was vermisse ich hier?
magento2
uicomponent
extend
Giel Berkers
quelle
quelle
Antworten:
Dies kann unter Verwendung eines erforderlichen "Mixins" erreicht werden.
Erstellen Sie zuerst
Your_Module/view/base/requirejs-config.js
mit diesem Code:Nun mache die Datei
Your_Module/view/base/web/form-hook.js
:Dieses Beispiel erweitert die Initialisierungsmethode der
form
Komponente.Weitere Informationen zu "Mixins" finden Sie hier: http://alanstorm.com/the-curious-case-of-magento-2-mixins/
quelle
Ich hatte ein ähnliches Problem und habe es gelöst.
Versuchen Sie, die Deklaration der UI-Komponente im Code zu finden und zu ersetzen. Zum Beispiel:
Magento_Checkout: LayoutProcessor.php
PS Verwenden Sie dies nicht:
quelle