Mẫu KnockoutJS cấp cao nhất của Thành phần UI liệt kê trông như thế này
<!-- File: vendor/magento//module-ui/view/base/web/templates/collection.html -->
<each args="data: elems, as: 'element'">
<render if="hasTemplate()"/>
</each>
Điều này được Magento dịch thành mã KnockoutJS thô sau đây.
<!-- ko foreach: {data: elems, as: 'element'} -->
<!-- ko if: hasTemplate() --><!-- ko template: getTemplate() --><!-- /ko --><!-- /ko -->
<!-- /ko -->
Trong cả hai trường hợp, mẫu này sẽ foreach
qua thuộc elems
tính của mô hình xem .
Nếu tôi nhìn vào mô-đun RequireJS (tôi nghĩ>) trả về lớp hàm tạo của mô hình khung nhìn
vendor/magento/module-ui/view/base/web/js/lib/core/collection.js
Tôi thấy insertChild
phương thức xuất hiện để thêm vào elems
tài sản.
Điều ít rõ ràng hơn đối với tôi là: Magento thực sự gọi insertChild
để cư trú ở đâu elems
và / hoặc làm thế nào được elems
phổ biến với các mô hình xem tạo nên một bộ sưu tập các Thành phần UI?