Влаштування шаблону користувальницького magento2 knockoutjs


12

Я намагаюся зрозуміти knockoutjs у magento2.espebly спеціальному прив'язці шаблону. Я не в змозі отримати потік ідеї рендерінга цього.

Хтось може уявити, як це працює? atleast Де я можу знайти визначення getTemplate?

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

Ось детальне пояснення щодо нокаутів у Magento 2 ibnab.com/en/blog/magento-2/…
FireBear

Відповіді:


26

відчинено

Magento / Оформити замовлення / переглянути / frontend / layout / checkout_index_index.xml
файл. подивіться наступний рядок

<item name = "компонент" xsi: type = "string"> Magento_Checkout / js / view / shipping </item>

Так

Magento / Checkout / view / frontend / web / js / view / shipping.js
це ваш js-файл. Відкрий це. Подивіться
шаблон: "Magento_Checkout / доставка"
це файл шаблону для цього JS.

Поверніться до

Magento / Оформити замовлення / переглянути / frontend / layout / checkout_index_index.xml
лінія 122 (M2 2.0.0-rc)
<item name = "children" xsi: type = "масив">
тут ви можете побачити якийсь дочірній вузол. подобається

<item name = "customer-email" xsi: type = "масив">
----
---
</item>

Так

getTemplate ()
відповідає за поточну подачу шаблону, що означає

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

Відкрийте його, тоді ви зможете побачити наступний фрагмент коду


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

цей вузол "поля додаткової форми входу" є дочірнім вузлом "електронної пошти клієнта".

Для фрагмента коду, якщо цитата не віртуальна, виберіть ko

foreach: getRegion ('електронна пошта клієнта')
що є ім'ям дочірнього вузла та надає його шаблон.


getRegion ('клієнт-електронна пошта') означає <item name = "customer-email" xsi: type = "array">. Це правильно? я маю на увазі, це повторить дочірні вузли цього.
Sivakumar K

його відображає лише поточний шаблон. Я оновив відповідь.
Sohel Rana

дякую за вашу відповідь.так багато разів у команді xml ..core використовуючи <item name = "компонент" xsi: type = "string"> uiComponent </item> .так, який файл js враховувати в цьому випадку?
Sivakumar K

так. дивіться наступний файл Magento / Ui / view / base / Requjs-config.js. тут uiComponent оголошується як js.
Sohel Rana

Як отримати сайт URl, Checkoutpageurl в будь-якому шаблоні нокауту?
Арун Карнават

1

Ви можете знайти визначення getTemplate з,

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

файл із рядка № 255 - 257.

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

вище код на основі загальної доступності magento 2.0.0.
Ракеш Єсадія
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.