Magento 2 nouveau modèle de système de grille

15

J'ai fouillé dans le nouveau système de grille backend de Magento sur la version Merchant beta 1.0.0.
Tout d'abord, je dois dire que je suis impressionné.
Vous pouvez maintenant sélectionner les colonnes à voir, vous pouvez les réorganiser, vous pouvez filtrer par attributs qui n'ont pas nécessairement de colonne.
Mais ce n'est pas important.
Je ne comprends pas comment la grille est rendue.
En activant les indications de chemin du modèle, j'ai vu que la grille des produits, par exemple, est rendue via le modèle app/code/Magento/Ui/view/base/ui_component/templates/listing/default.xhtmlet via le bloc Magento\Ui\Component\Listing.
J'ai édité le modèle et j'ai vu quelque chose que je ne comprends pas.

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

Si je supprime cette ligne (et vide le cache si elle est activée), je n'ai plus de grille.
Quelqu'un peut-il expliquer ce que koc'est et comment cela fonctionne?.
Je trouve également ce type de balisage dans d'autres modèles. app/code/Magento/Ui/view/base/web/templates/grid/controls/columns.htmlpar exemple.

[MISE À JOUR]
Je viens de découvrir avec une recherche simple (duh!) Qui se koréfère à ceci: http://knockoutjs.com/ mais j'ai encore besoin de quelques explications.

Marius
la source

Réponses:

7

Il semble que Magento 2 utilise Knockout.js , un framework MVVM qui utilise des liaisons de données HTML (et dans certains cas des commentaires HTML, comme celui que vous avez trouvé) pour lier le modèle et la vue.

Ici, ce commentaire est un élément virtuel, "template" probablement une liaison personnalisée de Magento (voir: http://knockoutjs.com/documentation/custom-bindings-for-virtual-elements.html ), getTemplate()évidemment une fonction JavaScript qui est responsable de rendre le ou les éléments réels.

Pour comprendre le knockout, parcourez leur tutoriel interactif sur knockoutjs.com, je l'ai trouvé facile à saisir et le tutoriel / documentation est vraiment génial.

Fabian Schmengler
la source
1
Merci. C'est un bon début. Je reviendrai vers vous à ce sujet :)
Marius
Cela fait un moment que je n'ai pas utilisé KO, mais j'ai adoré à quel point c'est simple et propre, j'ai hâte de l'utiliser à nouveau dans Magento 2 :)
Fabian Schmengler
1
La tendance est de moins utiliser le phtml et plus d'utiliser le html, les deux sont en vue mais le phtml est dans les modèles et les choses liées à ko sont dans le web. La différence est que phtml est lié à un bloc et html a un fournisseur de configuration et une vue de modèle js. Jetez un oeil à la caisse, elle a beaucoup d'exemples
PartySoft