Насколько я могу судить, когда вы просматриваете Grid в бэкенде Magento, следующий шаблон KnockoutJS «загружен поверх XHR» - это то, что начинает рендерить вещи
File: vendor/magento//module-ui/view/base/web/templates/collection.html
URL: http://magento.example.xom/pub/static/adminhtml/Magento/backend/en_US/Magento_Ui/templates/collection.html
<each args="data: elems, as: 'element'">
<render if="hasTemplate()"/>
</each>
Однако - я немного растерялся относительно того, что такое <each/>
тег и <render/>
тег. Они не являются (или не являются?) Частью акции KnockoutJS.
Я знаю, что можно добавлять пользовательские теги в KnockoutJS через компоненты , но я не вижу очевидных мест, где компонент назван each
или render
добавлен в KnockoutJS.
Итак, я не уверен, что это компоненты, зарегистрированные где-то, о которых я не знаю, или какая-то другая настройка, которую Magento сделал для KnockoutJS, которая включает пользовательские теги, или что-то еще полностью.
Примечание: я здесь не совсем в темноте - я понимаю, что <each/>
, вероятно , выполняется итерация по каждому дочернему компоненту пользовательского интерфейса, отображаемому в JSON, и визуализация его шаблона (если этот шаблон существует).
Я не совсем понимаю, как реализованы эти теги. Я хочу посмотреть, где они реализованы, чтобы я мог отладить, как связаны данные, а также понять механизм, который Magento использует для создания этих тегов, если есть другие.