Magento 2 новый шаблон системы сетки


15

Я копался в новой системе сетки бэкэнда Magento в версии Merchant beta 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/, но мне все еще нужны некоторые объяснения.

Ответы:


7

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

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

Чтобы понять нокаут, ознакомьтесь с их интерактивным учебником на knockoutjs.com. Мне было легко его понять, а учебник / документация действительно великолепны.


1
Благодарю. Это хорошее начало. Я перезвоню вам об этом :)
Мариус

Прошло много времени с тех пор, как я использовал нокаут, но мне понравилось, насколько он прост и чист, я с нетерпением жду возможности снова использовать его в Magento 2 :)
Фабиан Шменглер,

1
Тенденция заключается в том, чтобы меньше использовать phtml и больше использовать html, и то, и другое видно, но phtml находится в шаблонах, а связанные с ko вещи - в Интернете. Разница в том, что phtml связан с блоком, а html имеет провайдера конфигурации и представление модели js. Взгляните на Checkout, в нем много примеров
PartySoft
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.