Nowy szablon systemu siatki Magento 2

15

Grzebałem w nowym systemie siatki zaplecza Magento w wersji Merchant beta 1.0.0.
Przede wszystkim muszę powiedzieć, że jestem pod wrażeniem.
Teraz możesz wybrać kolumny, które chcesz zobaczyć, możesz zmienić ich kolejność, możesz filtrować według atrybutów, które niekoniecznie mają kolumnę.
Ale to nie jest ważne.
Nie rozumiem, w jaki sposób renderowana jest siatka.
Włączając wskazówki ścieżki szablonu zobaczyłem, że siatka produktów jest na przykład renderowana za pośrednictwem szablonu app/code/Magento/Ui/view/base/ui_component/templates/listing/default.xhtmli bloku Magento\Ui\Component\Listing.
Zredagowałem szablon i zobaczyłem coś, czego nie rozumiem.

<!-- ko template: getTemplate() --><!-- /ko -->

Jeśli usunę tę linię (i wyczyszczę pamięć podręczną, jeśli jest włączona), nie otrzymam już siatki.
Czy ktoś może wyjaśnić, co to kojest i jak to działa ?.
Tego rodzaju znaczniki znajduję również w innych szablonach. app/code/Magento/Ui/view/base/web/templates/grid/controls/columns.htmlna przykład.

[AKTUALIZACJA]
Właśnie dowiedziałem się za pomocą prostego wyszukiwania (duh!), Które koodnosi się do tego: http://knockoutjs.com/, ale wciąż potrzebuję wyjaśnień.

Marius
źródło

Odpowiedzi:

7

Wygląda na to, że Magento 2 używa Knockout.js , frameworka MVVM, który wykorzystuje powiązania danych HTML (aw niektórych przypadkach komentarze HTML, takie jak ten, który znalazłeś) do połączenia modelu i widoku.

Tutaj ten komentarz jest elementem wirtualnym, „szablonem”, prawdopodobnie niestandardowym powiązaniem z Magento (patrz: http://knockoutjs.com/documentation/custom-bindings-for-virtual-elements.html ), getTemplate()oczywiście funkcją JavaScript, która jest odpowiedzialny za renderowanie rzeczywistych elementów.

Aby zrozumieć nokaut, przejrzyj ich interaktywny samouczek na stronie knockoutjs.com. Uznałem, że łatwo go zrozumieć, a samouczek / dokumentacja jest naprawdę świetna.

Fabian Schmengler
źródło
1
Dzięki. To dobry początek. Wrócę do ciebie w tej sprawie :)
Marius
Minęło trochę czasu, odkąd użyłem nokautu, ale uwielbiałem to, jak proste i czyste, nie mogę się doczekać, aby ponownie go użyć w Magento 2 :)
Fabian Schmengler
1
Trend polega na tym, że w mniejszym stopniu korzystasz z phtml, a więcej z html, oba są widoczne, ale phtml jest w szablonach, a powiązane z nim rzeczy są w sieci. Różnica polega na tym, że phtml jest powiązany z blokiem, a html ma dostawcę konfiguracji i widok modelu js. Spójrz na Checkout, ma wiele przykładów
PartySoft