Перезаписать базовую функцию 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в этом случае? Спасибо.

user40166
источник
какие js вы хотите перезаписать SwatchRenderer.js этого не существует в magento 2
отменить Sanghani
У вас есть какое-нибудь решение?
Дхадук Митеш

Ответы:

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 в Magento 2 / Настройка ресурсов JavaScript / Как переопределить ядро ​​Magento JS в Magento 2 SharesFacebookLinkedInTwitterStumbleUponGoogle + SumoMe 7 ноября 2016 г. Обновлено: 7 ноября 2016 г. Мод Настройка ресурсов JavaScript В этой теме мы покажем вам, как переопределить Magento JS Core в Magento 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 Два шага, о которых я упомянул выше, - это самый короткий процесс переопределения Magento JS Core в Magento 2. С этим руководством вы легко сможете управлять Magento JS Core в Magento 2. В каждом магазине есть Magento JS Core в Magento 2 со многими атрибутами.

MehulKanjariya
источник
0

Ваш код для "requirejs-config.js" должен быть таким:

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

Kajal
источник