首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在magento 2的自定义模块中覆盖第三方模块Js widget

如何在magento 2的自定义模块中覆盖第三方模块Js widget
EN

Stack Overflow用户
提问于 2020-02-06 20:08:55
回答 1查看 716关注 0票数 1

在这里,我尝试使用mixin在我的模块中扩展Amasty js小部件。我已经创建了如下所示的要求like config.js文件

代码语言:javascript
复制
var config = {
    config: {
        mixins: {
            'amShopbyAjax': {
                'vendor_CustomCatalog/js/amasty/amShopbyAjax-override': true
            }
        }
    }
};

我已经创建了如下js文件

代码语言:javascript
复制
define([
    "jquery",
    "jquery-ui-modules/widget"
], function ($) {
    'use strict';
    var amShopbyWidgetMixin = {
        selectors: {
            category_products_wrapper: '#amasty-shopby-category-product-list',
        },

        reloadHtml: function (data) {
            console.log("Sdfsdfsdf");
            return this._super();
        },
        callAjax: function (clearUrl, data, pushState, cacheKey, isSorting) {
            console.log("sdnjkasndnsadj");
            return this._super();
        }
    };
    return function (targetWidget) {
        $.widget('custom.amShopbyAjax', targetWidget, amShopbyWidgetMixin);
        return $.custom.amShopbyAjax;
    };
});

之后,我运行sudo bin/magento setup:static-content:deploy -f并清除缓存,然后我得到“未捕获TypeError: base不是一个构造函数”错误

EN

回答 1

Stack Overflow用户

发布于 2021-06-02 19:35:09

我认为应该将custom.amShopbyAjax更改为mage.amShopbyAjax

代码语言:javascript
复制
return function (targetWidget) {
    $.widget('mage.amShopbyAjax', targetWidget, amShopbyWidgetMixin);
    return $.mage.amShopbyAjax;
};

目标微件的微件别名应与目标微件的别名类似,并且应返回按父级别名的微件

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60094680

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档