Magento 2 neues Grid System Template

15

Ich habe mich im neuen Backend-Grid-System von Magento für die Merchant Beta 1.0.0-Version umgesehen.
Zunächst muss ich sagen, dass ich beeindruckt bin.
Jetzt können Sie auswählen, welche Spalten angezeigt werden sollen, sie neu anordnen und nach Attributen filtern, die nicht unbedingt über eine Spalte verfügen.
Das ist aber nicht wichtig.
Ich verstehe nicht, wie das Raster gerendert wird.
Durch Aktivieren der Vorlagenpfad-Hinweise habe ich gesehen, dass das Produktraster beispielsweise über die Vorlage app/code/Magento/Ui/view/base/ui_component/templates/listing/default.xhtmlund über Block gerendert wird Magento\Ui\Component\Listing.
Ich habe die Vorlage bearbeitet und etwas gesehen, das ich nicht verstehe.

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

Wenn ich diese Zeile entferne (und den Cache lösche, falls aktiviert), bekomme ich kein Gitter mehr.
Kann jemand erklären, was das koist und wie es funktioniert?
Ich finde diese Art von Markup auch in anderen Vorlagen. app/code/Magento/Ui/view/base/web/templates/grid/controls/columns.htmlbeispielsweise.

[UPDATE]
Ich habe es gerade mit einer einfachen Suche herausgefunden (duh!), Die kosich darauf bezieht: http://knockoutjs.com/, aber ich brauche noch einige Erklärungen.

Marius
quelle

Antworten:

7

Anscheinend verwendet Magento 2 Knockout.js , ein MVVM-Framework, das HTML-Datenbindungen (und in einigen Fällen HTML-Kommentare, wie den von Ihnen gefundenen) zum Verknüpfen von Modell und Ansicht verwendet.

Bei diesem Kommentar handelt es sich um ein virtuelles Element, "Vorlage", wahrscheinlich eine benutzerdefinierte Bindung von Magento (siehe: http://knockoutjs.com/documentation/custom-bindings-for-virtual-elements.html ), getTemplate()offensichtlich eine JavaScript-Funktion verantwortlich für das Rendern der realen Elemente.

Um Knockout zu verstehen, gehen Sie das interaktive Tutorial auf knockoutjs.com durch. Ich fand es einfach zu verstehen und das Tutorial / die Dokumentation ist wirklich großartig.

Fabian Schmengler
quelle
1
Vielen Dank. Das ist ein guter Anfang. Ich melde mich wieder :)
Marius
Es ist schon eine Weile her, dass ich Knockout verwendet habe, aber ich fand es toll, wie einfach und sauber es ist. Ich freue mich darauf, es in Magento 2 wieder zu nutzen :)
Fabian Schmengler
1
Der Trend geht dahin, weniger HTML und mehr HTML zu verwenden. Beide sind in Sicht, aber HTML ist in Templates und Ko-bezogene Inhalte befinden sich im Web. Der Unterschied besteht darin, dass phtml an einen Block gebunden ist und html einen Konfigurationsanbieter und eine js-Modellansicht hat. Schauen Sie sich die Kasse an, sie enthält viele Beispiele
PartySoft