Die KnockoutJS-Vorlage der obersten Ebene zum Auflisten der UI-Komponente sieht folgendermaßen aus
<!-- File: vendor/magento//module-ui/view/base/web/templates/collection.html -->
<each args="data: elems, as: 'element'">
<render if="hasTemplate()"/>
</each>
Dies wird von Magento in den folgenden KnockoutJS-Rohcode übersetzt.
<!-- ko foreach: {data: elems, as: 'element'} -->
<!-- ko if: hasTemplate() --><!-- ko template: getTemplate() --><!-- /ko --><!-- /ko -->
<!-- /ko -->
In beiden Fällen wird diese Vorlage foreach
über die elems
Eigenschaft des Ansichtsmodells verschoben.
Wenn ich mir das RequireJS-Modul anschaue, das (glaube ich>) die Konstruktorklasse des Ansichtsmodells zurückgibt
vendor/magento/module-ui/view/base/web/js/lib/core/collection.js
Ich sehe, dass die insertChild
Methode der elems
Eigenschaft hinzugefügt zu werden scheint .
Was mir weniger klar ist, ist: Wo ruft Magento tatsächlich auf, um das insertChild
zu füllen, elems
und / oder wie wird es elems
mit den Ansichtsmodellen gefüllt, aus denen eine Sammlung von UI-Komponenten besteht?