Nueva plantilla de sistema de cuadrícula Magento 2

15

He estado hurgando en el nuevo sistema de cuadrícula de back-end de Magento en la versión beta 1.0.0 de Merchant.
En primer lugar, debo decir que estoy impresionado.
Ahora puede seleccionar qué columnas ver, puede reordenarlas, puede filtrar por atributos que no necesariamente tienen una columna.
Pero eso no es importante.
No entiendo cómo se representa la cuadrícula.
Al habilitar las sugerencias de ruta de la plantilla, vi que la cuadrícula de productos, por ejemplo, se representa a través de la plantilla app/code/Magento/Ui/view/base/ui_component/templates/listing/default.xhtmly a través del bloque Magento\Ui\Component\Listing.
Edité la plantilla y vi algo que no entiendo.

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

Si elimino esta línea (y borro el caché si está habilitado) ya no obtengo una cuadrícula.
¿Alguien puede explicar qué koes esto y cómo funciona?
También encuentro este tipo de marcado en otras plantillas. app/code/Magento/Ui/view/base/web/templates/grid/controls/columns.htmlpor ejemplo.

[ACTUALIZACIÓN]
Me acabo de enterar con una simple búsqueda (¡duh!) Que se korefiere a esto: http://knockoutjs.com/ pero todavía necesito algunas explicaciones.

Marius
fuente

Respuestas:

7

Parece que Magento 2 está usando Knockout.js , un marco MVVM que utiliza enlaces de datos HTML (y en algunos casos comentarios HTML, como el que encontró) para vincular el modelo y la vista.

Aquí, este comentario es un elemento virtual, "plantilla", probablemente un enlace personalizado de Magento (ver: http://knockoutjs.com/documentation/custom-bindings-for-virtual-elements.html ),getTemplate() obviamente una función de JavaScript que es responsable de representar los elementos reales.

Para comprender el knockout, consulte su tutorial interactivo en knockoutjs.com, me resultó fácil de entender y el tutorial / documentación es realmente genial.

Fabian Schmengler
fuente
1
Gracias. Este es un buen comienzo. Te responderé sobre esto :)
Marius
Ha pasado un tiempo desde que usé knockout, pero me encantó lo simple y limpio que es, deseando volver a usarlo en Magento 2 :)
Fabian Schmengler
1
La tendencia es usar menos phtml y más usar html, ambos están a la vista, pero phtml está en plantillas y las cosas relacionadas con ko están en la web. La diferencia es que phtml está vinculado a un bloque y html tiene un proveedor de configuración y una vista de modelo js. Echa un vistazo a Checkout, tiene muchos ejemplos
PartySoft