Вопрос

Я изучал новую серверную сетку Magento в бета-версии Merchant 1.0.0.
Прежде всего, я должен сказать, что я впечатлен.
Теперь вы можете выбирать столбцы для просмотра, менять их порядок и фильтровать по атрибутам, которые не обязательно имеют столбец.
Но это не важно.
Я не понимаю, как отображается сетка.
Включив подсказки по пути к шаблону, я увидел, что, например, сетка продуктов отображается с помощью шаблона. app/code/Magento/Ui/view/base/ui_component/templates/listing/default.xhtml и через блок Magento\Ui\Component\Listing.
Я отредактировал шаблон и увидел кое-что, чего не понимаю.

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

Если я удалю эту строку (и очистлю кеш, если он включен), я больше не получу сетку.
Может кто-нибудь объяснить, что это ko есть и как это работает?.
Я также встречаю такую ​​разметку в других шаблонах. app/code/Magento/Ui/view/base/web/templates/grid/controls/columns.html например.

[ОБНОВЛЯТЬ]
Я только что узнал с помощью простого поиска (ага!), что ko относится к этому: http://knockoutjs.com/ но мне все еще нужны некоторые объяснения.

Это было полезно?

Решение

Похоже, Magento 2 использует Нокаут.js, инфраструктура MVVM, которая использует привязки данных HTML (а в некоторых случаях комментарии HTML, подобные тому, который вы нашли) для связи модели и представления.

Здесь этот комментарий представляет собой виртуальный элемент, «шаблон», вероятно, пользовательскую привязку из Magento (см.: http://knockoutjs.com/documentation/custom-bindings-for-virtual-elements.html), getTemplate() очевидно, это функция JavaScript, которая отвечает за отображение реального элемента(ов).

Чтобы понять нокаут, просмотрите интерактивное руководство на сайте Knockoutjs.com, оно мне легко понять, а руководство и документация действительно великолепны.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с magento.stackexchange
scroll top