Überschreibe js Kernfunktion Magento 2

9

Ich versuche, eine Funktion aus einer Magento_Swatches/js/SwatchRenderer.jsDatei zu überschreiben

Mein Code ist für requirejs-config.js:

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

Und Code für Datei 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);
};});

Wofür sollte ich targetin diesem Fall verwenden? Danke.

user40166
quelle
Welche js möchten Sie
SwatchRenderer.js überschreiben
Hast du eine Lösung?
Dhaduk Mitesh

Antworten:

1

Schritt 1: Erstellen Sie eine RequireJS-Konfigurationsdatei requirejs-config.js

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

Bei Verwendung der folgenden Notation :: Der Name der Standardkomponente, die Sie ersetzen

: Der Name der benutzerdefinierten Komponente

Wenn Sie beispielsweise anstelle der Standard-Menü-Widgets ein benutzerdefiniertes Skript "navigation-menu.js" verwenden möchten, sollte Ihre Datei "requirejs-config.js" Folgendes enthalten:

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

So überschreiben Sie Magento JS Core in Magento 2 / Konfigurieren von JavaScript-Ressourcen / Überschreiben von Magento JS Core in Magento 2 SharesFacebookLinkedInTwitterStumbleUponGoogle + SumoMe 7. November 2016 Aktualisiert: 7. November 20161 Mod Konfigurieren von JavaScript-Ressourcen In diesem Thema zeigen wir Ihnen, wie Sie JavaScript-Ressourcen überschreiben Magento JS Core in Magento 2 bis 2 Schritte:

Hallo, alle miteinander. Manchmal möchten Sie den Magento JS-Kern ändern. Sie können den Magento-Quellcode jedoch nicht direkt ändern. Sie müssen also das Magento JS überschreiben. In diesem Blog werde ich Ihnen zeigen, wie Sie den Magento JS-Kern überschreiben und durch Ihr benutzerdefiniertes Javascript ersetzen können.

Schritt 1: Erstellen Sie eine RequireJS-Konfigurationsdatei requirejs-config.js

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

Bei Verwendung der folgenden Notation :: Der Name der Standardkomponente, die Sie ersetzen

: Der Name der benutzerdefinierten Komponente

Wenn Sie beispielsweise anstelle der Standard-Menü-Widgets ein benutzerdefiniertes Skript "navigation-menu.js" verwenden möchten, sollte Ihre Datei "requirejs-config.js" Folgendes enthalten:

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

Schritt 2: Platzieren Sie Ihre Datei requirejs-config.js in einem der folgenden Verzeichnisse (dies hängt vom Speicherort Ihres benutzerdefinierten Skripts ab):

Ihre Themendateien: Ihre Modulansichtsdateien: / view / frontend Die beiden oben genannten Schritte sind der kürzeste Vorgang zum Überschreiben von Magento JS Core in Magento 2. Mit diesem Handbuch können Sie den Magento JS Core in Magento 2 einfach verwalten. Jedes Geschäft verfügt über einen Magento JS Core in Magento 2 mit vielen Attributen.

MehulKanjariya
quelle
0

Ihr Code für "requirejs-config.js" sollte folgendermaßen lauten:

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

Kajal
quelle