リスト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
てどこにデータを入力するか、UIコンポーネントのコレクションを構成するビューモデルをelems
どのようにelems
入力するのですか?