KnockoutJS шаблон верхнего уровня для перечисления UI Component выглядит следующим образом
<!-- File: vendor/magento//module-ui/view/base/web/templates/collection.html -->
<each args="data: elems, as: 'element'">
<render if="hasTemplate()"/>
</each>
Это переводится Magento в следующий необработанный код KnockoutJS.
<!-- ko foreach: {data: elems, as: 'element'} -->
<!-- ko if: hasTemplate() --><!-- ko template: getTemplate() --><!-- /ko --><!-- /ko -->
<!-- /ko -->
В любом случае этот шаблон будет foreach
поверх elems
свойства модели представления .
Если я смотрю на модуль RequireJS, который (я думаю>) возвращает класс конструктора модели представления
vendor/magento/module-ui/view/base/web/js/lib/core/collection.js
Я вижу, что insertChild
метод, кажется, добавляет к elems
свойству.
Что менее понятно для меня: где Magento фактически вызывается insertChild
для заполнения elems
и / или как elems
заполняются моделями представлений, которые составляют коллекцию компонентов пользовательского интерфейса?