magento2 knockoutjs การเชื่อมโยงแม่แบบกำหนดเอง


12

ฉันพยายามที่จะเข้าใจ knockoutjs ใน magento2. โดยเฉพาะอย่างยิ่งการเชื่อมโยงแม่แบบที่กำหนดเองฉันไม่สามารถรับแนวคิดการแสดงผลนี้ได้

มีใครรู้บ้างไหมว่ามันทำงานอย่างไร atleast ฉันจะหาคำจำกัดความของ getTemplate ได้ที่ไหน

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

นี่คือคำอธิบายโดยละเอียดเกี่ยวกับ knockoutjs ใน Magento 2 ibnab.com/en/blog/magento-2/…
FireBear

คำตอบ:


26

เปิด

วีโอไอพี / ชำระเงิน / view / ส่วนหน้า / รูปแบบ / checkout_index_index.xml
ไฟล์. ดูบรรทัดต่อไปนี้

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

ดังนั้น

วีโอไอพี / ชำระเงิน / view / ส่วนหน้า / เว็บ / js / view / shipping.js
นี่คือไฟล์ js ของคุณ เปิด. ดู
แม่แบบ: 'Magento_Checkout / shipping'
นี่คือไฟล์เทมเพลตสำหรับ JS นี้

กลับไป

วีโอไอพี / ชำระเงิน / view / ส่วนหน้า / รูปแบบ / checkout_index_index.xml
บรรทัดที่ 122 (M2 2.0.0-rc)
<item name = "children" xsi: type = "array">
ที่นี่คุณสามารถเห็นโหนดย่อยบางโหนด ชอบ

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

ดังนั้น

getTemplate ()
รับผิดชอบการแสดงเทมเพลตปัจจุบันที่หมายถึง

วีโอไอพี / ชำระเงิน / view / ส่วนหน้า / เว็บ / แม่แบบ / รูปแบบ / องค์ประกอบ / email.html

เปิดจากนั้นคุณจะเห็นข้อมูลโค้ดต่อไปนี้


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

โหนด 'เพิ่มเติมล็อกอินแบบฟอร์มนี้' เป็นโหนดย่อยของ 'อีเมลลูกค้า'

สำหรับข้อมูลโค้ดของคุณถ้าการเสนอราคาไม่ใช่แบบเสมือนให้เลือก ko

foreach: getRegion ('อีเมลลูกค้า')
ซึ่งเป็นชื่อโหนดลูกและสร้างเท็มเพลต


getRegion ('อีเมลลูกค้า') หมายถึง <item name = "อีเมลลูกค้า" xsi: type = "array"> ถูกต้องหรือไม่ ฉันหมายความว่ามันจะย้ำโหนดลูกของที่
Sivakumar K

แสดงเฉพาะเทมเพลตปัจจุบัน ฉันอัพเดตคำตอบแล้ว
Sohel Rana

ขอบคุณสำหรับ response.so ของคุณหลาย ๆ ครั้งในทีม xml ..core โดยใช้ <item name = "component" xsi: type = "string"> uiComponent </item>. ดังนั้นไฟล์ js ที่พิจารณาในกรณีนี้คืออะไร?
Sivakumar K

ใช่. ดูไฟล์ Magento / Ui / view / base / requirejs-config.js uiComponent ที่นี่ประกาศเป็น js
Sohel Rana

จะรับ Site URl, Checkoutpageurl ในเทมเพลตที่น่าพิศวงได้อย่างไร
อรุณกรรณวัฒน์

1

คุณสามารถค้นหา defination ของ 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
Rakesh Jesadiya
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.