Zastąp podstawową funkcję js magento 2

9

Próbuję zastąpić jakąś funkcję z Magento_Swatches/js/SwatchRenderer.jspliku

Mój kod dotyczy requirejs-config.js:

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

I kod pliku 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);
};});

Do czego powinienem użyć targetw tym przypadku? Dziękuję Ci.

użytkownik40166
źródło
Które js chcesz zastąpić SwatchRenderer.js to nie istnieje w Magento 2
Deexit Sanghani
Czy masz jakieś rozwiązanie?
Dhaduk Mitesh

Odpowiedzi:

1

Krok 1: Utwórz plik konfiguracyjny RequireJS requjs-config.js

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

Gdzie stosowana jest następująca notacja: nazwa domyślnego komponentu, który zastępujesz

: nazwa niestandardowego komponentu

Przykład: jeśli chcesz użyć niestandardowego skryptu navigation-menu.js zamiast domyślnych widżetów menu, plik Requjs-config.js powinien zawierać następujące elementy:

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

Jak przesłonić Magento JS Core w Magento 2 / Konfigurować zasoby JavaScript / Jak przesłonić Magento JS Core w Magento 2 SharesFacebookLinkedInTwitterStumbleUponGoogle + SumoMe 7 listopada 2016 Zaktualizowano: 7 listopada 20161 Mod Konfiguruj zasoby JavaScript w tym temacie pokażemy, jak przesłonić Magento JS Core w Magento 2 do 2 kroków:

Cześć wszystkim. Czasami chcesz zmienić rdzeń Magento JS. Ale nie można zmienić bezpośrednio w kodzie źródłowym Magento. Musisz więc zastąpić Magento JS. Na tym blogu pokażę, jak zastąpić rdzeń Magento JS i zastąpić go niestandardowym JavaScript.

Krok 1: Utwórz plik konfiguracyjny RequireJS requjs-config.js

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

Gdzie stosowana jest następująca notacja: nazwa domyślnego komponentu, który zastępujesz

: nazwa niestandardowego komponentu

Przykład: jeśli chcesz użyć niestandardowego skryptu navigation-menu.js zamiast domyślnych widżetów menu, plik Requjs-config.js powinien zawierać następujące elementy:

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

Krok 2: Umieść plik Requjs-config.js w jednym z następujących katalogów (zależy to od lokalizacji skryptu niestandardowego):

Twoje pliki motywów: Twój moduł Przeglądaj pliki: / view / frontend 2 kroki, o których wspomniałem powyżej, są najkrótszym procesem, aby zastąpić Magento JS Core w Magento 2. Za pomocą tego przewodnika możesz łatwo zarządzać Magento JS Core w Magento 2. Każdy sklep ma Magento JS Core w Magento 2 z wieloma atrybutami.

MehulKanjariya
źródło
0

Twój kod dla „requjs-config.js” powinien wyglądać następująco:

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

Kajal
źródło