Magento 2 templat sistem grid baru

15

Saya telah mengaduk-aduk dalam sistem grid backend baru Magento pada versi Merchant beta 1.0.0.
Pertama-tama saya harus mengatakan saya terkesan.
Sekarang Anda dapat memilih kolom apa yang akan dilihat, Anda dapat menyusun ulang, Anda dapat memfilter berdasarkan atribut yang tidak selalu memiliki kolom.
Tapi itu tidak penting.
Saya tidak mengerti bagaimana grid ditampilkan.
Dengan mengaktifkan petunjuk lintasan templat saya melihat bahwa kisi-kisi produk misalnya diberikan melalui templat app/code/Magento/Ui/view/base/ui_component/templates/listing/default.xhtmldan via block Magento\Ui\Component\Listing.
Saya mengedit template dan melihat sesuatu yang tidak saya mengerti.

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

Jika saya menghapus baris ini (dan menghapus cache jika diaktifkan) saya tidak mendapatkan kotak lagi.
Adakah yang bisa menjelaskan apa ini kodan bagaimana cara kerjanya?
Saya juga menemukan markup semacam ini di templat lain. app/code/Magento/Ui/view/base/web/templates/grid/controls/columns.htmlsebagai contoh.

[UPDATE]
Saya baru tahu dengan pencarian sederhana (ya!) Yang komerujuk pada ini: http://knockoutjs.com/ tapi saya masih butuh penjelasan.

Marius
sumber

Jawaban:

7

Tampaknya Magento 2 menggunakan Knockout.js , kerangka kerja MVVM yang menggunakan binding data HTML (dan dalam beberapa kasus, komentar HTML, seperti yang Anda temukan) untuk menautkan model dan tampilan.

Di sini, komentar ini adalah elemen virtual, "templat" yang mungkin merupakan pengikatan khusus dari Magento (lihat: http://knockoutjs.com/documentation/custom-bindings-for-virtual-elements.html ), getTemplate()jelas merupakan fungsi JavaScript yang bertanggung jawab untuk membuat elemen yang sebenarnya.

Untuk memahami knockout, buka tutorial interaktif mereka di knockoutjs.com, saya merasa mudah untuk memahami dan tutorial / dokumentasi sangat bagus.

Fabian Schmengler
sumber
1
Terima kasih. Ini awal yang bagus. Saya akan kembali kepada Anda tentang hal ini :)
Marius
Sudah lama sejak saya menggunakan sistem gugur, tapi saya suka betapa sederhana dan bersihnya, berharap untuk memanfaatkannya lagi di Magento 2 :)
Fabian Schmengler
1
Trennya adalah untuk lebih sedikit menggunakan phtml dan lebih banyak menggunakan html, keduanya dalam tampilan tetapi phtml dalam template dan hal-hal terkait ko di web. Perbedaannya adalah bahwa phtml terikat ke blok dan html memiliki penyedia konfigurasi dan tampilan model js. Lihatlah di Checkout, ada banyak contoh
PartySoft