Перезапишіть основну функцію 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в цьому випадку? Дякую.


який js ви хочете перезаписати SwatchRenderer.js, це не існує в magento 2
Deexit Sanghani

У вас є рішення?
Дахук Мітеш

Відповіді:


1

Крок 1: Створіть файл конфігурації RequireJS Requjs-config.js

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

Де використовуються наступні позначення:: назва компонента за замовчуванням, який ви замінюєте

: назва користувацького компонента

Наприклад, якщо ви хочете використовувати користувацький скрипт navigation-menu.js замість віджетів меню за замовчуванням, ваш Requjs-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 SharesFacebookLinkedInTwitterStumbleUponGoogle + SumoMe 7 листопада 2016 р. Оновлено: 7 листопада 20161 Mod Налаштування ресурсів JavaScript У цій темі ми покажемо вам, як перекрити Magento JS Core в Magento 2 - 2 етапи:

Привіт усім. Іноді потрібно змінити ядро ​​Magento JS. Але ви не можете змінити безпосередньо у вихідному коді Magento. Отже, ви повинні перекрити Magento JS. У цьому блозі я покажу вам, як замінити ядро ​​Magento JS і замінити його на ваш власний Javascript.

Крок 1: Створіть файл конфігурації RequireJS Requjs-config.js

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

Де використовуються наступні позначення:: назва компонента за замовчуванням, який ви замінюєте

: назва користувацького компонента

Наприклад, якщо ви хочете використовувати користувацький скрипт navigation-menu.js замість віджетів меню за замовчуванням, ваш Requjs-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. Розмістіть файл Requjs-config.js в одному з таких каталогів (це залежить від місця розташування вашого спеціального сценарію):

Ваші теми тем: Файли перегляду модулів: / view / frontend 2 кроки, про які я згадував вище, є найкоротшим для вас способом переосмислення Magento JS Core в Magento 2. За допомогою цього посібника ви можете легко керувати Magento JS Core в Magento 2. У кожному магазині є Magento JS Core в Magento 2 з багатьма атрибутами.


0

Ваш код для "Requjs-config.js" повинен бути таким:

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.