enlace de plantilla personalizada magento2 knockoutjs

12

Estoy tratando de entender knockoutjs en magento2.esencuadernación de plantilla especialmente personalizada.No puedo obtener el flujo de ideas al representar esto.

¿Alguien puede tener idea de cómo funciona? al menos ¿Dónde puedo encontrar la definición de getTemplate?

<!-- ko if: (!quoteIsVirtual) -->
            <!-- ko foreach: getRegion('customer-email') -->
                <!-- ko template: getTemplate() --><!-- /ko -->
            <!--/ko-->
        <!--/ko-->
Sivakumar K
fuente
Aquí hay una explicación detallada sobre knockoutjs en Magento 2 ibnab.com/en/blog/magento-2/…
FireBear

Respuestas:

26

Abierto

Magento / Checkout / view / frontend / layout / checkout_index_index.xml
archivo. mira la siguiente línea

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

Entonces

Magento / Checkout / view / frontend / web / js / view / shipping.js
Este es tu archivo js. Abrelo. Mira
plantilla: 'Magento_Checkout / shipping'
Este es el archivo de plantilla para este JS.

Volver a

Magento / Checkout / view / frontend / layout / checkout_index_index.xml
línea 122 (M2 2.0.0-rc)
<item name = "children" xsi: type = "array">
aquí puedes ver algún nodo hijo. me gusta

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

Entonces

getTemplate ()
es responsable de la representación actual de la plantilla que significa

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

Ábrelo, luego puedes ver el siguiente fragmento de código


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

este nodo 'campos de formulario de inicio de sesión adicionales' es el nodo hijo de 'correo electrónico del cliente'.

Para su fragmento de código, si la cotización no es virtual, elija ko

foreach: getRegion ('correo electrónico del cliente')
que es el nombre del nodo secundario y representa su plantilla.

Sohel Rana
fuente
getRegion ('customer-email') significa <item name = "customer-email" xsi: type = "array">. ¿Es correcto? Quiero decir que iterará nodos secundarios de eso.
Sivakumar K
solo representa la plantilla actual. Actualicé la respuesta.
Sohel Rana
gracias por su respuesta. tantas veces en xml ..core equipo utilizando <item name = "component" xsi: type = "string"> uiComponent </item> .so, ¿qué archivo js considera en este caso?
Sivakumar K
si. mira el siguiente archivo Magento / Ui / view / base / requirejs-config.js. aquí uiComponent se declara como js.
Sohel Rana
¿Cómo obtener Site URl, Checkoutpageurl en cualquiera de las plantillas de eliminación?
Arun Karnawat
1

Puede encontrar la definición de getTemplate de,

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

archivo de la línea no. 255 a 257.

  getTemplate: function () {
                return this.template;
            }
Rakesh Jesadiya
fuente
código anterior basado en la disponibilidad general de magento 2.0.0.
Rakesh Jesadiya