O ile wiem, kiedy oglądasz siatkę w backendzie Magento, następujący szablon KnockoutJS „załadowany przez XHR” zaczyna renderować rzeczy
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>
Jednak - jestem trochę zagubiony, co do <each/>
tagu i <render/>
tagu. Nie są (lub nie wydają się być) częścią akcji KnockoutJS.
Wiem, że można dodawać niestandardowe tagi do KnockoutJS za pośrednictwem komponentów , ale nie widzę żadnych oczywistych miejsc, w których komponent nazwany each
lub render
zostałby dodany do KnockoutJS.
Nie jestem więc pewien, czy są to komponenty zarejestrowane gdzieś, o których nie wiem, czy jakieś inne dostosowania dokonane przez Magento w KnockoutJS, które umożliwiają niestandardowe tagi, czy coś zupełnie innego.
Uwaga: Nie jestem tutaj całkowicie ukryty - rozumiem, że <each/>
prawdopodobnie iteruje każdy komponent interfejsu użytkownika renderowany w JSON i wyświetla jego szablon (jeśli ten szablon istnieje).
Nie jestem wcale pewien, w jaki sposób te tagi są implementowane. Chcę zobaczyć, gdzie są zaimplementowane, aby móc debugować sposób wiązania danych, a także zrozumieć mechanizm, którego Magento używa do tworzenia tych tagów w przypadku, gdy istnieją inne.
źródło