associazione modello personalizzato knockoutjs magento2


12

Sto cercando di capire knockoutjs in magento2. In particolare il template personalizzato. Non riesco a ottenere il flusso di idee per renderlo.

Qualcuno può avere idea di come funziona? atleast Dove posso trovare la definizione di getTemplate?

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

Ecco una spiegazione dettagliata di knockoutjs in Magento 2 ibnab.com/en/blog/magento-2/…
FireBear,

Risposte:


26

Aperto

Magento / Checkout / view / frontend / layout / checkout_index_index.xml
file. guarda la riga seguente

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

Così

Magento / Checkout / view / frontend / web / js / view / shipping.js
questo è il tuo file js. Aprilo Guarda
modello: "Magento_Checkout / spedizione"
questo è il file modello per questo JS.

Tornare a

Magento / Checkout / view / frontend / layout / checkout_index_index.xml
linea 122 (M2 2.0.0-rc)
<item name = "children" xsi: type = "array">
qui puoi vedere qualche nodo figlio. piace

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

Così

getTemplate ()
è responsabile del rendering del modello corrente che significa

Magento / Checkout / view / frontend / web / template / forma / elemento / email.html

Aprilo, quindi puoi vedere il seguente frammento di codice


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

questo nodo "additional-login-form-fields" è il nodo figlio di "email cliente".

Per lo snippet di codice, se il preventivo non è virtuale, scegli ko

foreach: getRegion ('email cliente')
che è il nome del nodo figlio e rende il suo modello.


getRegion ('email-cliente') significa <nome articolo = "email-cliente" xsi: type = "array">. È corretto? voglio dire che ripeterà i nodi figlio di quello.
Sivakumar K,

rende solo il modello corrente. Ho aggiornato la risposta.
Sohel Rana,

grazie per la tua risposta. così tante volte nel team xml ..core usando <item name = "component" xsi: type = "string"> uiComponent </item> .so quale file js prendere in considerazione in questo caso?
Sivakumar K,

sì. guarda il seguente file Magento / Ui / view / base / requirejs-config.js. qui uiComponent viene dichiarato come js.
Sohel Rana,

Come ottenere Site URl, Checkoutpageurl in uno dei modelli knockout?
Arun Karnawat,

1

Puoi trovare la definizione di getTemplate da,

`root\vendor\magento\module-ui\view\base\web\js\lib\core\element\element.js` 

file dalla riga n. Da 255 a 257.

  getTemplate: function () {
                return this.template;
            }

sopra il codice basato sulla disponibilità generale di magento 2.0.0.
Rakesh Jesadiya,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.