Pour autant que je sache, lorsque vous affichez une grille dans le backend de Magento, le modèle KnockoutJS "chargé sur XHR" suivant est ce qui commence à rendre les choses
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>
Cependant - je suis un peu perdu quant à ce que sont l' <each/>
étiquette et l' <render/>
étiquette. Ils ne font pas partie de KnockoutJS (ou ne semblent pas l'être?).
Je sais qu'il est possible d'ajouter des balises personnalisées à KnockoutJS via des composants , mais je ne vois aucun endroit évident où un composant nommé each
ou render
est ajouté à KnockoutJS.
Donc, je ne sais pas s'il s'agit de composants enregistrés quelque part que je ne connais pas, ou d'une autre personnalisation que Magento a apportée à KnockoutJS qui permet des balises personnalisées, ou autre chose entièrement.
Remarque: je ne suis pas complètement dans l'obscurité ici - je comprends que cela <each/>
est probablement en train d'itérer sur chaque composant d'interface utilisateur enfant rendu dans le JSON et de rendre son modèle (si ce modèle existe).
Ce que je ne sais pas du tout, c'est comment ces balises sont implémentées. Je veux voir où ils sont implémentés afin de pouvoir déboguer la façon dont les données sont liées, et également comprendre le mécanisme que Magento utilise pour créer ces balises au cas où il y en aurait d'autres.
la source