La plantilla de nivel superior KnockoutJS del listado de componentes de IU se ve así
<!-- File: vendor/magento//module-ui/view/base/web/templates/collection.html -->
<each args="data: elems, as: 'element'">
<render if="hasTemplate()"/>
</each>
Esto es traducido por Magento al siguiente código bruto KnockoutJS.
<!-- ko foreach: {data: elems, as: 'element'} -->
<!-- ko if: hasTemplate() --><!-- ko template: getTemplate() --><!-- /ko --><!-- /ko -->
<!-- /ko -->
En cualquier caso, esta plantilla foreachsobrepasará la elemspropiedad del modelo de vista .
Si miro el módulo RequireJS que (creo>) devuelve la clase de constructor del modelo de vista
vendor/magento/module-ui/view/base/web/js/lib/core/collection.js
Veo que el insertChildmétodo parece agregarse a la elemspropiedad.
Lo que es menos claro para mí es: ¿dónde llama realmente Magento insertChildpara poblar elemsy / o cómo se elemsrellena con los modelos de vista que conforman una colección de componentes de la interfaz de usuario?
magento2
uicomponent
knockoutjs
Alan Storm
fuente
fuente

Respuestas:
La única información que puedo encontrar es
en la línea 321 de
Parece que esto está dentro de una función que combina componentes?
Esto se usa en la línea 73 (función de ejecución) del mismo archivo (layout.js) donde se usa para fusionar nodos.
Esta función de ejecución se usa en 2 funciones (proceso y fusión, ambas en
layout.js), pero no puedo entender completamente lo que hacen.Actualizar
Acabo de ver lo siguiente en los documentos de desarrollo: http://devdocs.magento.com/guides/v2.1/ui_comp_guide/concepts/ui_comp_uicollection_concept.html
elems es la propiedad observable que contiene la colección de componentes secundarios de la interfaz de usuario.
elems es la colección de los elementos secundarios de uiCollection. En cuanto a elems es la propiedad observable, las plantillas de los componentes añadidos a elems en el tiempo de ejecución, también se representan
fuente