เขียนทับฟังก์ชัน js core magento 2


9

ฉันพยายามเขียนทับฟังก์ชั่นบางอย่างจากMagento_Swatches/js/SwatchRenderer.jsไฟล์

รหัสของฉันสำหรับrequirejs-config.js:

var config = {
    config: {
        mixins: {
            'Magento_Swatches/js/SwatchRenderer': {
                'Magento_Swatches/js/SwatchRendererCategory1': true
            }
        }
    }
};

และรหัสสำหรับไฟล์ SwatchRendererCategory1.js

define(function () {
'use strict';

var mixin = {
        updateBaseImage: function (images, context, isProductViewExist) {
            var justAnImage = images[0];

            if (isProductViewExist) {
                context
                    .find('[data-gallery-role=gallery-placeholder]')
                    .data('gallery')
                    .updateData(images);
            } else if (justAnImage && justAnImage.img) {
                context.find('.image-block').css("background-image", "url('"+justAnImage.img+"')");
            }
        }
};

return function (target) {
    return target.extend(mixin);
};});

สิ่งที่ฉันควรใช้สำหรับtargetในกรณีนี้? ขอบคุณ.


js ที่คุณต้องการเขียนทับSwatchRenderer.jsไม่มีใน magento 2
Deexit Sanghani

คุณมีทางออกหรือไม่?
Dhaduk Mitesh

คำตอบ:


1

ขั้นตอนที่ 1: สร้างไฟล์กำหนดค่า RequireJS requirejs-config.js

var config = {
  "map": {
    "*": {
      "<default_component>": "<custom_component>"
    }
  }
};

โดยที่ใช้สัญกรณ์ต่อไปนี้: ชื่อของส่วนประกอบเริ่มต้นที่คุณแทนที่

: ชื่อขององค์ประกอบที่กำหนดเอง

ตัวอย่างเช่นหากคุณต้องการใช้สคริปต์ navigation-menu.js แบบกำหนดเองแทนวิดเจ็ตเมนูเริ่มต้น requirejs-config.js ของคุณควรมีสิ่งต่อไปนี้:

var config = {
  "map": {
    "*": {
      "menu": "/js/navigation-menu",
      "mage/backend/menu": "js/navigation-menu",
    }
  }
};

วิธีการแทนที่ Magento JS Core ใน Magento 2 / กำหนดค่าทรัพยากร JavaScript / วิธีการแทนที่ Magento JS Core ใน Magento 2 การแบ่งปัน Facebook หนังสือเชื่อมโยงIn Twitter นักต้มตุ๋นขึ้น Google + SumoMe 7 พฤศจิกายน 2016 อัปเดต: 7 พฤศจิกายน 20161 Mod กำหนดค่าทรัพยากร JavaScript ในหัวข้อนี้ Magento JS Core ใน Magento 2 ถึง 2 ขั้นตอน:

สวัสดีทุกคน. บางครั้งคุณต้องการเปลี่ยน Magento JS core แต่คุณไม่สามารถเปลี่ยนแปลงได้โดยตรงในซอร์สโค้ด Magento ดังนั้นคุณต้องแทนที่ Magento JS ในบล็อกนี้ฉันจะแสดงวิธีแทนที่ Magento JS core และแทนที่ด้วย Javascript ที่คุณกำหนดเอง

ขั้นตอนที่ 1: สร้างไฟล์กำหนดค่า RequireJS requirejs-config.js

var config = {
  "map": {
    "*": {
      "<default_component>": "<custom_component>"
    }
  }
};
var config = {
  "map": {
    "*": {
      "<default_component>": "<custom_component>"
    }
  }
};

โดยที่ใช้สัญกรณ์ต่อไปนี้: ชื่อของส่วนประกอบเริ่มต้นที่คุณแทนที่

: ชื่อขององค์ประกอบที่กำหนดเอง

ตัวอย่างเช่นหากคุณต้องการใช้สคริปต์ navigation-menu.js แบบกำหนดเองแทนวิดเจ็ตเมนูเริ่มต้น requirejs-config.js ของคุณควรมีสิ่งต่อไปนี้:

var config = {
  "map": {
    "*": {
      "menu": "/js/navigation-menu",
      "mage/backend/menu": "js/navigation-menu",
    }
  }
};
var config = {
  "map": {
    "*": {
      "menu": "/js/navigation-menu",
      "mage/backend/menu": "js/navigation-menu",
    }
  }
};

ขั้นตอนที่ 2: วางไฟล์ requirejs-config.js ในหนึ่งในไดเรกทอรีต่อไปนี้ (ขึ้นอยู่กับตำแหน่งของสคริปต์ที่คุณกำหนดเอง):

ไฟล์ชุดรูปแบบของคุณ: มุมมองโมดูลของคุณ: / ดู / ส่วนหน้า 2 ขั้นตอนที่ฉันกล่าวถึงข้างต้นเป็นกระบวนการที่สั้นที่สุดสำหรับคุณในการแทนที่ Magento JS Core ใน Magento 2 ด้วยคู่มือนี้คุณสามารถจัดการ Magento JS Core ใน Magento 2 ได้อย่างง่ายดาย ทุกร้านมี Magento JS Core ใน Magento 2 ที่มีคุณสมบัติมากมาย


0

รหัสของคุณสำหรับ "requirejs-config.js" ควรเป็น:

var config = {map: {'*': {"Magento_Swatches / js / SwatchRenderer": 'Magento_Swatches / js / SwatchRendererCategory1',}}};

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