Pregunta

He estado husmeando en el nuevo sistema backend grid de Magento en la versión Merchant beta 1.0.0.
Primero que nada debo decir que estoy impresionado.
Ahora puedes seleccionar qué columnas ver, puedes reordenarlas, puedes 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.xhtml y vía 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é es esto? ko es y como funciona?.
También encuentro este tipo de marcado en otras plantillas. app/code/Magento/Ui/view/base/web/templates/grid/controls/columns.html Por ejemplo.

[ACTUALIZAR]
Acabo de descubrir con una simple búsqueda (¡duh!) que ko se refiere a esto: http://knockoutjs.com/ pero todavía necesito algunas explicaciones.

¿Fue útil?

Solución

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 knockout, consulte su tutorial interactivo en knockoutjs.com. Me resultó fácil de entender y el tutorial/documentación es realmente excelente.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a magento.stackexchange
scroll top