In den Konfigurationsdateien für die UI-Formularkomponente von Magento 2 wird häufig ein item
Attribut mit dem folgenden source
- <item name="source" xsi:type="string">block</item>
angezeigt.
#File: vendor/magento/module-cms/view/adminhtml/ui_component/cms_block_form.xml
<field name="title">
<argument name="data" xsi:type="array">
<item name="config" xsi:type="array">
<item name="dataType" xsi:type="string">text</item>
<item name="label" xsi:type="string" translate="true">Block Title</item>
<item name="formElement" xsi:type="string">input</item>
<item name="source" xsi:type="string">block</item>
<item name="sortOrder" xsi:type="number">20</item>
<item name="dataScope" xsi:type="string">title</item>
<item name="validation" xsi:type="array">
<item name="required-entry" xsi:type="boolean">true</item>
</item>
</item>
</argument>
</field>
Wofür sind diese Felder? Ich frage, weil es scheint, als wären sie nicht notwendig. Zum Beispiel das Modul in dieser GitHub - Repository konfiguriert eine Arbeits UI Component Form , aber diese nicht verwendet name="source"
Elemente.
Weiß jemand, wofür diese name="source"
Gegenstände sind? Mir ist die UI-Komponenten-Mechanik bekannt, die das XML als x-magento-init
JSON konfiguriert
"block_id": {
"type": "form.input",
"name": "block_id",
"dataScope": "block_id",
"config": {
"component": "Magento_Ui\/js\/form\/element\/abstract",
"template": "ui\/form\/field",
"visible": false,
"dataType": "text",
"formElement": "input",
"source": "block"
}
},
Wird in ein uiElement
basiertes Knockout-Ansichtsmodellobjekt eingespeist . Es ist jedoch nicht klar, wie die verschachtelte Baumstruktur von uiElement
Objekten des Knockout-Ansichtsmodells diese source
Felder auf Feldebene verwendet.
Wenn ich auf das Aussehen uiElement
‚s initModules
Methode
initModules: function () {
_.each(this.modules, function (name, property) {
if (name) {
this[property] = this.requestModule(name);
}
}, this);
if (!_.isFunction(this.source)) {
this.source = registry.get(this.provider);
}
return this;
},
Ich sehe, dass das Objekt auf eine source
Eigenschaft verweist und, wenn es nicht festgelegt ist, in die Registrierung nach einem Objekt greift, wobei die provider
Eigenschaft als Zeichenfolge / Schlüsselkennung verwendet wird. Es scheint, als würde der Wert dieser source
Gegenstände nicht verwendet. Es ist jedoch möglich, dass sie vom PHP-Code oder einem anderen Javascript-Code verwendet werden. Daher meine Frage.
source
in diesen XML-Dateien zu tun :)