Tão perto quanto eu posso dizer, quando você vê uma Grade no back-end do Magento, o seguinte modelo "carregado sobre XHR" KnockoutJS é o que começa a renderizar coisas
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>
No entanto - estou um pouco sem saber o que são a <each/>
tag e a <render/>
tag. Eles não são (ou não parecem ser?) Uma parte do estoque KnockoutJS.
Sei que é possível adicionar tags personalizadas ao KnockoutJS por meio de componentes , mas não vejo lugares óbvios em que um componente chamado each
ou render
seja adicionado ao KnockoutJS.
Portanto, não tenho certeza se esses componentes estão registrados em algum lugar que não conheço, ou alguma outra personalização que o Magento fez no KnockoutJS que habilita tags personalizadas ou algo completamente diferente.
Nota: Eu não estou completamente no escuro aqui - eu entendo que <each/>
provavelmente está repetindo todos os componentes da interface do usuário filho renderizados no JSON e renderizando seu modelo (se esse modelo existir).
O que não estou claro é como essas tags são implementadas. Quero ver onde eles são implementados para que eu possa depurar como os dados são vinculados e também entender o mecanismo que o Magento está usando para criar essas tags, caso existam outras.
fonte