Magento 2の新しいグリッドシステムテンプレート


15

私は、Merchant beta 1.0.0バージョンでMagentoの新しいバックエンドグリッドシステムをいじくり回しています。
まず第一に、私は感銘を受けたと言わなければなりません。
表示する列を選択したり、並べ替えたり、必ずしも列を持たない属性でフィルタリングしたりできるようになりました。
しかし、それは重要ではありません。
グリッドのレンダリング方法がわかりません。
テンプレートパスヒントを有効にすると、たとえば製品グリッドがテンプレート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例えば。

[更新] http://knockoutjs.com/
ko参照する簡単な検索(duh!)で見つけましたが、まだ説明が必要です。

回答:


7

Magento 2はKnockout.jsを使用しているようです、HTMLデータバインディング(および場合によってはHTMLコメントなど)を使用してモデルとビューをリンクするMVVMフレームワークです。

ここで、このコメントは仮想要素、「テンプレート」はおそらくMagentoのカスタムバインディング(http://knockoutjs.com/documentation/custom-bindings-for-virtual-elements.htmlを参照)、getTemplate()明らかにJavaScript関数です実際の要素をレンダリングする責任があります。

ノックアウトを理解するには、knockoutjs.comのインタラクティブチュートリアルをご覧ください。簡単に理解でき、チュートリアル/ドキュメントは非常に優れています。


1
ありがとう。これは良いスタートです。この件についてご連絡します:)
マリウス

ノックアウトを使用してからしばらく経ちましたが、Magento 2で再び使用できることを楽しみにしています。
ファビアンSchmengler

1
傾向は、phtmlの使用を減らし、htmlの使用を増やすことです。両方とも表示されていますが、phtmlはテンプレートにあり、ko関連のものはWebにあります。違いは、phtmlはブロックにバインドされ、htmlには構成プロバイダーとjsモデルビューがあることです。チェックアウトを見てください。たくさんの例があります
PartySoft
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.