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-->

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.


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;
            }

código anterior basado en la disponibilidad general de magento 2.0.0.
Rakesh Jesadiya
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.