magento2 knockoutjsカスタムテンプレートバインディング


12

私はmagento2。特にカスタムテンプレートバインディングのknockoutjsを理解しようとしていますが、これをレンダリングするアイデアの流れを得ることができません。

誰もそれがどのように機能するかを知ることができますか?少なくともgetTemplateの定義はどこにありますか?

<!-- ko if: (!quoteIsVirtual) -->
            <!-- ko foreach: getRegion('customer-email') -->
                <!-- ko template: getTemplate() --><!-- /ko -->
            <!--/ko-->
        <!--/ko-->

ここでMagentoの2でknockoutjsについて詳細に説明するibnab.com/en/blog/magento-2/...は
FireBear

回答:


26

開いた

Magento / Checkout / view / frontend / layout / checkout_index_index.xml
ファイル。次の行を見てください

<item name = "component" xsi:type = "string"> Magento_Checkout / js / view / shipping </ item>

そう

Magento / Checkout / view / frontend / web / js / view / shipping.js
これがjsファイルです。それを開く。見て
テンプレート: 'Magento_Checkout / shipping'
これは、このJSのテンプレートファイルです。

帰ります

Magento / Checkout / view / frontend / layout / checkout_index_index.xml
122行目(M2 2.0.0-rc)
<item name = "children" xsi:type = "array">
ここで、いくつかの子ノードを確認できます。お気に入り

<item name = "customer-email" xsi:type = "array">
----
---
</ item>

そう

getTemplate()
現在のテンプレートのレンダリングを担当します

Magento / Checkout / view / frontend / web / template / form / element / email.html

それを開くと、次のコードスニペットを見ることができます


<!-- ko foreach: getRegion('additional-login-form-fields') -->
            <!-- ko template: getTemplate() --><!-- /ko -->
            <!-- /ko -->

この 'additional-login-form-fields'ノードは 'customer-email'の子ノードです。

コードスニペットでは、引用が仮想でない場合はkoを選択します

foreach:getRegion( 'customer-email')
これは子ノード名であり、そのテンプレートをレンダリングします。


getRegion( 'customer-email')は、<item name = "customer-email" xsi:type = "array">を意味します。それが正しいか?つまり、その子ノードを反復します。
シヴァクマールK

現在のテンプレートのみをレンダリングします。答えを更新しました。
ソヘルラナ

<item name = "component" xsi:type = "string"> uiComponent </ item> .soを使用してxml ..coreチームで何度もresponse.soに感謝します。
シバクマールK

はい。次のファイルMagento / Ui / view / base / requirejs-config.jsを見てください。ここで、uiComponentはjsとして宣言されています。
ソヘルラナ

ノックアウトテンプレートでSite URl、Checkoutpageurlを取得する方法は?
アルンカルナワット

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.