覆盖js核心功能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在这种情况下我应该使用什么?谢谢。


您想要覆盖哪个sjsRenderer.js的 js,这在magento 2中不存在
Deexit Sanghani

你有什么解决办法吗?
Dhaduk Mitesh

Answers:


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 2中覆盖Magento JS核心/配置JavaScript资源/如何在Magento 2中覆盖Magento JS核心分享到FacebookLinkedInTwitterStumbleUponGoogle + SumoMe 2016年11月7日更新:2016年11月7日Mod配置JavaScript资源在本主题中,我们将向您展示如何覆盖Magento中的Magento JS Core 2到2个步骤:

大家好。有时,您想更改Magento JS内核。但是您不能直接在Magento源代码中进行更改。因此,您必须覆盖Magento JS。在此博客中,我将向您展示如何覆盖Magento JS核心,并用自定义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文件放在以下目录之一(取决于您的自定义脚本的位置):

您的主题文件:您的模块视图文件:/ view / frontend我上面提到的2个步骤是覆盖Magento 2中的Magento JS Core的最短过程。通过此指南,您可以轻松管理Magento 2中的Magento JS Core。每个商店在Magento 2中都有一个具有许多属性的Magento JS核心。


0

您的“ requirejs-config.js”代码应为:

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.