คำถามติดแท็ก knockoutjs

หมายถึงคำถามที่เกี่ยวข้องกับการใช้ Knockout ใน Magento2

2
ใน Magento2 <script type =“ text / x-magento-init”> คืออะไร
ฉันใหม่สำหรับ Magento2 และองค์กรของเราเพิ่งได้รับใบอนุญาต EE ฉันได้ติดตั้งไว้ในเครื่องท้องถิ่นของฉันแล้วและแม่แบบเริ่มต้นจะแยกออกมาผสมกับ HMTL ดังต่อไปนี้: &lt;script type="text/x-magento-init"&gt; { "*": { "Magento_Ui/js/core/app": { "components": { "customer": { "component": "Magento_Customer/js/view/customer" } } } } } &lt;/script&gt; และสายที่ชอบ &lt;script type="text/x-magento-init"&gt; { "*": { "Magento_Ui/js/core/app": { "components": { "messages": { "component": "Magento_Theme/js/view/messages" } } } } } &lt;/script&gt; นี้จะทำอย่างไรกับเป็นKnockoutJSหรือRequireJS? การเรียกเหล่านี้คืออะไรและแท็กสคริปต์ใหม่นี้คืออะไร&lt;script type="text/x-magento-init"&gt;

2
ข้อความเทมเพลต Magento2 แปล Javascript (KO)
ฉันพยายามที่จะเพิ่มการแปลสำหรับข้อความที่&lt;!-- ko i18n: 'Store credit available' --&gt;&lt;!-- /ko --&gt;มีอยู่vendor/magento/module-customer-balance/view/frontend/web/template/payment/customer-balance.htmlแต่ถ้าฉันพยายามที่จะเปลี่ยนข้อความในของฉันi18n/en_US.csvก็ยังคงไม่ทำงาน ฉันล้างแคชและใช้การปรับใช้เนื้อหาแบบคงที่ มีวิธีอื่นในการเพิ่มการแปลสำหรับเทมเพลต KO หรือไม่

3
Magento 2: ฟังก์ชั่น Knockout ของฟังก์ชั่น Knockout 'getTemplate' อยู่ที่ใด?
หน้าแบ็กเอนด์ของวีโอไอพีหลายหน้ามีดังต่อไปนี้ในซอร์สโค้ด &lt;!-- ko template: getTemplate() --&gt;&lt;!-- /ko --&gt; ผมเข้าใจ (หรือคิดว่าฉันทำอะไร?) ที่&lt;!-- ko templateเป็น KnockoutJS ภาชนะน้อยแม่แบบที่มีผลผูกพัน อะไรคือสิ่งที่ไม่ชัดเจนสำหรับฉัน - getTemplate()ฟังก์ชั่นที่ใช้เรียกบริบทคืออะไร template:ในตัวอย่างที่ผมเคยเห็นทั่วไปมักจะมีวัตถุจาวาสคริปต์หลังจากที่ ฉันสมมติว่าgetTemplateเป็นฟังก์ชั่นจาวาสคริปต์ที่ผลตอบแทนวัตถุ - แต่ไม่มีโลกgetTemplateฟังก์ชั่นจาวาสคริปต์ชื่อ ที่ถูกgetTemplateผูกไว้? หรืออาจเป็นคำถามที่ดีกว่าการผูกแอปพลิเคชั่น KnockoutJS เกิดขึ้นที่หน้าแบ็กเอนด์ของวีโอไอพีที่ไหน ฉันสนใจสิ่งนี้จากมุมมอง HTML / CSS / Javascript แท้ๆ ฉันรู้ว่าวีโอไอพี 2 มีรูปแบบการกำหนดค่ามากมายดังนั้นในทางทฤษฎีผู้พัฒนาไม่จำเป็นต้องกังวลเกี่ยวกับรายละเอียดการติดตั้ง ฉันสนใจในรายละเอียดการใช้งาน

1
วีโอไอพี 2 มีการใช้ KnockoutJS อย่างไร
ตามการอ่านคร่าวๆของเอกสารประกอบ KnockoutJS การเริ่มต้นมุมมองการทำให้ล้มลงพื้นฐานขั้นพื้นฐานจะมีลักษณะดังนี้ // This is a simple *viewmodel* - JavaScript that defines the data and behavior of your UI function AppViewModel() { this.firstName = "Bert"; this.lastName = "Bertington"; } // Activates knockout.js ko.applyBindings(new AppViewModel()); เช่น - คุณสร้างฟังก์ชั่นจาวาสคริปต์ที่มีวัตถุประสงค์เพื่อใช้เป็นตัวสร้างวัตถุยกตัวอย่างวัตถุจากนั้นส่งวัตถุนั้นไปยังko.applyBindingsวิธีการของวัตถุพิศวงทั่วโลก ( ko) อย่างไรก็ตามใน Magento 2 หากคุณโหลดหน้าเว็บแบ็กเอนด์ด้วย Grid UI Magento จะเริ่มต้น js/core/app.jsโมดูล RequireJS …

3
Magento 2 เพิ่มการตรวจสอบคุณสมบัติของผลิตภัณฑ์ที่กำหนดเองจากสคริปต์การติดตั้ง
[ 'type' =&gt; 'int' 'backend' =&gt; '', 'frontend' =&gt; '', 'label' =&gt; 'XXXX' 'input' =&gt; 'text', 'frontend_class' =&gt; 'ตรวจสอบความถูกต้องมากกว่าศูนย์' 'source' =&gt; '', 'global' =&gt; \ Magento \ Eav \ Model \ Entity \ Attribute \ ScopedAttributeInterface :: SCOPE_GLOBAL 'visible' =&gt; จริง 'ต้องใช้' =&gt; จริง 'user_defined' =&gt; false 'default' =&gt; 0, …

3
รายการ "แหล่งที่มา" ในไฟล์คอมโพเนนต์ UI คืออะไร
ในไฟล์การกำหนดค่า UI ส่วนประกอบของ Magento 2 คุณมักจะเห็นแอitemททริบิวด้วยเหมือนsource- &lt;item name="source" xsi:type="string"&gt;block&lt;/item&gt;ด้านล่าง #File: vendor/magento/module-cms/view/adminhtml/ui_component/cms_block_form.xml &lt;field name="title"&gt; &lt;argument name="data" xsi:type="array"&gt; &lt;item name="config" xsi:type="array"&gt; &lt;item name="dataType" xsi:type="string"&gt;text&lt;/item&gt; &lt;item name="label" xsi:type="string" translate="true"&gt;Block Title&lt;/item&gt; &lt;item name="formElement" xsi:type="string"&gt;input&lt;/item&gt; &lt;item name="source" xsi:type="string"&gt;block&lt;/item&gt; &lt;item name="sortOrder" xsi:type="number"&gt;20&lt;/item&gt; &lt;item name="dataScope" xsi:type="string"&gt;title&lt;/item&gt; &lt;item name="validation" xsi:type="array"&gt; &lt;item name="required-entry" xsi:type="boolean"&gt;true&lt;/item&gt; &lt;/item&gt; &lt;/item&gt; &lt;/argument&gt; &lt;/field&gt; ฟิลด์เหล่านี้มีไว้เพื่อทำอะไร? …

1
เทมเพลตระบบกริดใหม่ Magento 2
ฉันใช้ระบบแบ็กเอนด์กริดใหม่ของ Magento ในเวอร์ชัน Merchant เบต้า 1.0.0 แล้ว ก่อนอื่นต้องบอกว่าฉันประทับใจ ตอนนี้คุณสามารถเลือกคอลัมน์ที่ต้องการดูคุณสามารถจัดลำดับคอลัมน์ใหม่ได้คุณสามารถกรองตามแอตทริบิวต์ที่ไม่จำเป็นต้องมีคอลัมน์ แต่นั่นไม่สำคัญ ฉันไม่เข้าใจวิธีการแสดงผลของตาราง โดยการช่วยให้คำแนะนำเส้นทางแม่แบบที่ผมเห็นว่าตารางผลิตภัณฑ์ตัวอย่างเช่นมีการแสดงผ่านทางแม่แบบและผ่านบล็อกapp/code/Magento/Ui/view/base/ui_component/templates/listing/default.xhtml ฉันแก้ไขเทมเพลตและเห็นบางสิ่งที่ฉันไม่เข้าใจMagento\Ui\Component\Listing &lt;!-- ko template: getTemplate() --&gt;&lt;!-- /ko --&gt; ถ้าฉันลบบรรทัดนี้ (และล้างแคชถ้าเปิดใช้งาน) ฉันจะไม่ได้รับกริดอีกต่อไป ใครสามารถอธิบายสิ่งนี้koคืออะไรและมันทำงานอย่างไร ฉันพบมาร์กอัปชนิดนี้ในเทมเพลตอื่น app/code/Magento/Ui/view/base/web/templates/grid/controls/columns.htmlตัวอย่างเช่น. [อัพเดท] ฉันเพิ่งค้นพบด้วยการค้นหาง่าย ๆ (duh!) ที่koอ้างถึงสิ่งนี้: http://knockoutjs.com/แต่ฉันยังต้องการคำอธิบายบางอย่าง

3
ปัญหาการรีเฟรชหน้าเช็คเอาต์
ก่อนอื่นฉันต้องการให้ภาพหน้าจอเพื่อทำความเข้าใจปัญหาของฉัน ตอนนี้ฉันต้องการเพิ่มรหัสที่เกี่ยวข้องที่นี่ etc / ส่วนหน้า / di.xml &lt;?xml version="1.0"?&gt; &lt;config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd"&gt; &lt;type name="Magento\Checkout\Model\CompositeConfigProvider"&gt; &lt;arguments&gt; &lt;argument name="configProviders" xsi:type="array"&gt; &lt;item name="checkout_deliverysign_block" xsi:type="object"&gt;Kensium\DeliverySign\Model\DeliverySignConfigProvider&lt;/item&gt; &lt;/argument&gt; &lt;/arguments&gt; &lt;/type&gt; &lt;/config&gt; DeliverySignConfigProvider &lt;?php namespace Kensium\DeliverySign\Model; use Magento\Checkout\Model\ConfigProviderInterface; use Magento\Store\Model\ScopeInterface; class DeliverySignConfigProvider implements ConfigProviderInterface { /** * @var \Magento\Framework\App\Config\ScopeConfigInterface */ protected $scopeConfiguration; protected $checkoutSession; protected $logger; /** …

4
เพิ่มคุณสมบัติผลิตภัณฑ์ที่กำหนดเองเพื่อสรุปการชำระเงินวีโอไอพี 2
ฉันกำลังพยายามเพิ่มแอตทริบิวต์ผลิตภัณฑ์ที่กำหนดเองลงในรายการของรายการในส่วนสรุปในการชำระเงินใน Magento 2 ไฟล์เทมเพลตอยู่ที่Magento_Checkout/web/template/summary/item/details.htmlและกำลังมองหาเพื่อแสดงค่าของแอตทริบิวต์ที่กำหนดเองก่อนชื่อผลิตภัณฑ์ มีความคิดเกี่ยวกับวิธีเพิ่มค่านี้ลงในเทมเพลต ko หรือไม่? ดูเหมือนว่ามีคำถามอื่นสำหรับที่นี่แต่ก็ไม่เคยตอบ

2
Magento 2: แท็ก '<<แต่ละ /> `คืออะไร
ใกล้ที่สุดเท่าที่ฉันสามารถบอกได้เมื่อคุณดูกริดในแบ็กเอนด์ของวีโอไอพีเทมเพลต KnockoutJS "โหลดผ่าน XHR" ต่อไปนี้คือสิ่งที่เริ่มแสดงผลสิ่งต่าง ๆ File: vendor/magento//module-ui/view/base/web/templates/collection.html URL: http://magento.example.xom/pub/static/adminhtml/Magento/backend/en_US/Magento_Ui/templates/collection.html &lt;each args="data: elems, as: 'element'"&gt; &lt;render if="hasTemplate()"/&gt; &lt;/each&gt; อย่างไรก็ตาม - ฉันรู้สึกว่า&lt;each/&gt;แท็กและ&lt;render/&gt;แท็กคืออะไร พวกเขาไม่ได้เป็นหรือไม่เป็นส่วนหนึ่งของสต็อก KnockoutJS ฉันรู้ว่าเป็นไปได้ที่จะเพิ่มแท็กที่กำหนดเองไปที่ KnockoutJS ผ่านส่วนประกอบแต่ฉันไม่เห็นสถานที่ใด ๆ ที่ชัดเจนซึ่งมีชื่อองค์ประกอบeachหรือrenderถูกเพิ่มลงใน KnockoutJS ดังนั้นฉันไม่แน่ใจว่าสิ่งเหล่านี้เป็นส่วนประกอบที่ลงทะเบียนที่ไหนฉันไม่ทราบหรือการปรับแต่งอื่น ๆ ที่ Magento ได้ทำกับ KnockoutJS ที่เปิดใช้งานแท็กที่กำหนดเองหรืออย่างอื่น หมายเหตุ:ฉันไม่ได้อยู่ในความมืดอย่างสมบูรณ์ที่นี่ - ฉันได้รับ&lt;each/&gt;มันอาจซ้ำแล้วซ้ำอีกทุกองค์ประกอบเด็ก UI ที่แสดงใน JSON และการแสดงผลแม่แบบของมัน (ถ้าแม่แบบที่มีอยู่) สิ่งที่ฉันไม่ชัดเจนเลยคือการใช้งานแท็กเหล่านี้อย่างไร ฉันต้องการดูว่ามีการนำไปใช้ที่ใดฉันจึงสามารถดีบักวิธีการผูกข้อมูลและเข้าใจกลไกที่ Magento ใช้ในการสร้างแท็กเหล่านี้ในกรณีที่มีผู้อื่น

3
Magento 2: ย้ายปุ่มคำสั่งซื้อจากการชำระเงินไปยังแถบด้านข้างในหน้าเช็คเอาต์?
ฉันต้องการย้ายปุ่มคำสั่งซื้อจากการชำระเงินไปยังแถบด้านข้างในหน้าเช็คเอาต์ ทุกคนสามารถให้คำแนะนำแก่ฉันได้บ้าง แก้ไข : เป็นไปได้หรือไม่(พร้อมคำตอบ / วิธีการที่ให้ไว้) ? จากการวิจัยของฉันทุกวิธีการชำระเงินมีเทมเพลต. html ของตัวเองรวมถึงปุ่มของตัวเอง ปุ่มนี้ไม่ได้โหลดจากเทมเพลต knockout.js เช่นวิธีการชำระเงิน "ฟรี": &lt;div class="checkout-agreements-block"&gt; &lt;!-- ko foreach: $parent.getRegion('before-place-order') --&gt; &lt;!-- ko template: getTemplate() --&gt;&lt;!-- /ko --&gt; &lt;!--/ko--&gt; &lt;/div&gt; &lt;div class="actions-toolbar"&gt; &lt;div class="primary"&gt; &lt;button class="action primary checkout" type="submit" data-bind=" click: placeOrder, attr: {title: $t('Place Order')}, css: {disabled: !isPlaceOrderActionAllowed()} …

2
magento2 knockoutjs การเชื่อมโยงแม่แบบกำหนดเอง
ฉันพยายามที่จะเข้าใจ knockoutjs ใน magento2. โดยเฉพาะอย่างยิ่งการเชื่อมโยงแม่แบบที่กำหนดเองฉันไม่สามารถรับแนวคิดการแสดงผลนี้ได้ มีใครรู้บ้างไหมว่ามันทำงานอย่างไร atleast ฉันจะหาคำจำกัดความของ getTemplate ได้ที่ไหน &lt;!-- ko if: (!quoteIsVirtual) --&gt; &lt;!-- ko foreach: getRegion('customer-email') --&gt; &lt;!-- ko template: getTemplate() --&gt;&lt;!-- /ko --&gt; &lt;!--/ko--&gt; &lt;!--/ko--&gt;

1
วิธีการแบ่งปันสิ่งที่น่าพิศวง JS สิ่งที่น่าสังเกตระหว่างองค์ประกอบ UI
ฉันเข้าใจวิธีใช้imports: {}และexports: {}แบ่งปันคุณสมบัติของส่วนประกอบ UI เช่น: defaults: { exports: { shouldShowMessage: '${$.component}' } } ซึ่งส่งคืนชื่อคอมโพเนนต์ในการเอ็กซ์พอร์ต แต่เมื่อฉันพยายามส่งออกสิ่งที่น่าพิศวงที่สังเกตได้มันไม่ได้กำหนดไว้เสมอ: defaults: { exports: { shouldShowMessage: '${$.shouldShowMessage}' } } ... setupKoBindings: function() { this.shouldShowMessage = ko.observable('Testing'); } เพื่อเป็นการหลีกเลี่ยงปัญหาฉันจะสร้างโมเดลหน่วยความจำตามที่อธิบายไว้ที่นี่แต่ฉันต้องการใช้การนำเข้าและส่งออก

2
ฉันต้องการปรับแต่ง minicart ของฉันใน Magento 2 ฉันต้องเพิ่ม 3 คุณสมบัติ
ฉันต้องการปรับแต่ง minicart ของฉันใน Magento 2 ฉันต้องเพิ่ม 3 คุณลักษณะ: SKU, ผู้ผลิตและหมายเลขผู้ผลิต เหล่านี้เป็นคุณสมบัติที่มีอยู่ ฉันเห็นตำแหน่งที่จะเพิ่มค่าเอาต์พุต แต่จะไม่เรียกจากที่ใด

2
วิธีใช้ Knockout JS ภายใน Magento 2
ปัญหาของฉัน: ฉันกำลังพยายามเขียนแอป Knockout JS ขนาดเล็กภายใน Magento 2 ฉันพยายามที่จะเริ่มต้นแอปเนื่องจากเมื่อฉันใช้งานko.applyBindings(AppViewModel, document.getElementById("koTest"));มันจะทำให้ Knockout ที่ใช้โดย Magento ล้มเหลวและพ่นข้อผิดพลาดนี้: Uncaught Error: You cannot apply bindings multiple times to the same element. ฉันสงสัยว่าเป็นเพราะ: ฉันสงสัยว่านี้เป็นเพราะวีโอไอพี 2 แล้วใช้ภายในko.applyBindings() app/code/Magento/Ui/view/base/web/js/lib/knockout/bootstrap.jsและนั่นไม่ได้ระบุโหนดที่ฉันไม่สามารถใช้ko.applyBindingsอีกครั้ง หากฉันไม่ได้ใช้ko.applyBindings(AppViewModel, document.getElementById("koTest"))ในรหัสของฉันแอพของฉันจะไม่เริ่มต้น นี่ทำให้ฉันคิดว่าฉันจำเป็นต้องใช้ko.applyBindings()ในสิ่งที่น่าพิศวง / bootstrap.js แต่ฉันไม่รู้ว่าจะมีใครช่วยได้บ้าง ฉันมีประสบการณ์เล็กน้อยเกี่ยวกับสิ่งที่น่าพิศวง รหัสของฉัน &lt;script type="text/javascript"&gt; require([ 'ko' ], function(ko) { // This is a simple …

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