列出UI组件的顶级KnockoutJS模板如下所示
<!-- 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
填充构成UI组件集合的视图模型?
我认为已在此处完成:app / code / Magento / Ui / view / base / web / js / core / renderer / layout.js
—
ps202 '16