magento2 knockoutjs reliure de modèle personnalisé


12

J'essaie de comprendre knockoutjs dans magento2.En particulier la liaison de modèles personnalisés.Je ne suis pas en mesure d'obtenir un flux d'idées pour le rendre.

Quelqu'un peut-il avoir une idée de comment cela fonctionne? atleast Où puis-je trouver la définition de getTemplate?

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

Voici une explication détaillée des knockoutjs dans Magento 2 ibnab.com/en/blog/magento-2/…
FireBear

Réponses:


26

Ouvert

Magento / Checkout / view / frontend / layout / checkout_index_index.xml
fichier. regardez la ligne suivante

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

Donc

Magento / Checkout / view / frontend / web / js / view / shipping.js
c'est votre fichier js. Ouvrez-le. Regardez
modèle: 'Magento_Checkout / expédition'
c'est le fichier modèle pour ce JS.

Revenir à

Magento / Checkout / view / frontend / layout / checkout_index_index.xml
ligne 122 (M2 2.0.0-rc)
<item name = "children" xsi: type = "array">
ici, vous pouvez voir un nœud enfant. comme

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

Donc

getTemplate ()
est responsable du rendu du modèle actuel, ce qui signifie

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

Ouvrez-le, puis vous pouvez voir l'extrait de code suivant


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

ce nœud «champs de formulaire de connexion supplémentaires» est le nœud enfant de «e-mail client».

Pour votre extrait de code, si le devis n'est pas virtuel, choisissez ko

foreach: getRegion ('email client')
qui est le nom du nœud enfant et rend son modèle.


getRegion ('email client') signifie <item name = "email client" xsi: type = "array">. Est-ce correct? je veux dire qu'il va itérer les nœuds enfants de cela.
Sivakumar K du

son rendu uniquement le modèle actuel. J'ai mis à jour la réponse.
Sohel Rana

merci pour votre response.so plusieurs fois dans l'équipe xml ..core en utilisant <item name = "component" xsi: type = "string"> uiComponent </item> .so quel fichier js considérer dans ce cas?
Sivakumar K du

Oui. regardez le fichier suivant Magento / Ui / view / base / requirejs-config.js. ici uiComponent est déclaré comme js.
Sohel Rana

Comment obtenir Site URl, Checkoutpageurl dans l'un des modèles de knockout?
Arun Karnawat

1

Vous pouvez trouver la définition de getTemplate à partir de,

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

fichier de la ligne no. 255 à 257.

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

ci-dessus basé sur la disponibilité générale de magento 2.0.0.
Rakesh Jesadiya
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.