Ghi đè chức năng cốt lõi js magento 2


9

Tôi đang cố gắng ghi đè một số chức năng từ Magento_Swatches/js/SwatchRenderer.jstập tin

Mã của tôi là cho requirejs-config.js:

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

Và mã cho tập tin 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);
};});

Tôi nên sử dụng những gì targettrong trường hợp này? Cảm ơn bạn.


js nào bạn muốn ghi đè SwatchRenderer.js, điều này không tồn tại trong magento 2
Deexit Sanghani 22/07/17

Bạn đã có giải pháp nào chưa?
Dhaduk Mitesh

Câu trả lời:


1

Bước 1: Tạo tệp cấu hình RequireJS requestjs-config.js

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

Trường hợp ký hiệu sau được sử dụng :: tên của thành phần mặc định bạn thay thế

: tên của thành phần tùy chỉnh

Ví dụ, nếu bạn muốn sử dụng tập lệnh navigation-menu.js tùy chỉnh thay vì các widget menu mặc định, thì các tệp certjs-config.js của bạn phải chứa các mục sau:

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

Cách ghi đè Magento JS Core trong Magento 2 / Định cấu hình tài nguyên JavaScript / Cách ghi đè Magento JS Core trong Magento 2 SharesFacebookLinkedInTwitterStumbleUponGoogle + SumoMe ngày 7 tháng 11 năm 2016 Cập nhật: Ngày 7 tháng 11 năm 20161 Mod Cấu hình tài nguyên JavaScript Trong chủ đề này, chúng tôi sẽ chỉ cho bạn Cách ghi đè Magento JS Core trong Magento 2 qua 2 bước:

Xin chào tất cả mọi người. Đôi khi, bạn muốn thay đổi lõi Magento JS. Nhưng bạn không thể thay đổi trực tiếp trong mã nguồn Magento. Vì vậy, bạn phải ghi đè lên Magento JS. Trong blog này, tôi sẽ chỉ cho bạn cách ghi đè lõi Magento JS và thay thế nó bằng Javascript tùy chỉnh của bạn.

Bước 1: Tạo tệp cấu hình RequireJS requestjs-config.js

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

Trường hợp ký hiệu sau được sử dụng :: tên của thành phần mặc định bạn thay thế

: tên của thành phần tùy chỉnh

Ví dụ, nếu bạn muốn sử dụng tập lệnh navigation-menu.js tùy chỉnh thay vì các widget menu mặc định, thì các tệp certjs-config.js của bạn phải chứa các mục sau:

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",
    }
  }
};

Bước 2: Đặt tệp allowjs-config.js của bạn vào một trong các thư mục sau (tùy thuộc vào vị trí của tập lệnh tùy chỉnh của bạn):

Tệp chủ đề của bạn: Các tệp xem mô-đun của bạn: / view / frontend 2 bước tôi đề cập ở trên là quy trình ngắn nhất để bạn ghi đè Magento JS Core trong Magento 2. Với hướng dẫn này, bạn có thể dễ dàng quản lý Magento JS Core trong Magento 2. Mỗi cửa hàng đều có Magento JS Core trong Magento 2 với nhiều thuộc tính.


0

Mã của bạn cho "notifyjs-config.js" phải là:

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

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.