javascript - 如何使用 mixin 覆盖这个函数?

标签 javascript jquery magento requirejs magento2

我正在尝试重写以下函数 postcodeValidation:

vendor/magento/module-checkout/view/frontend/web/js/model/shipping-rates-validator.js

我已经能够创建一个 mixin,但我不确定如何更改现有函数。我想要更改验证消息(不使用 CSV 文件)。

这是我的 mixin 中的代码:

define(['mage/utils/wrapper', 'mage/translate', 'jquery'],function (wrapper, $t, $){
    'use strict';

    return function (target) {

        var postcodeValidation = wrapper.wrap(target.postcodeValidation, function(originalFunction, config, element){
            originalFunction();
            warnMessage = $t('test');
        });

        target.postcodeValidation = postcodeValidation;

        return target;
    };
});

现在这不起作用,因为 warnMessage 未定义。我需要复制整个函数吗?

最佳答案

请尝试这个:

define(['mage/utils/wrapper'], function (wrapper) {
'use strict';

return function (shippingRatesValidator) {
    shippingRatesValidator.postcodeValidation = wrapper.wrapSuper(shippingRatesValidator.postcodeValidation, function (postcodeElement) {
        this._super(postcodeElement);
        console.log('aaaaaaaaaaaaa');
        // add extended functionality here or modify method logic altogether
    });

    return shippingRatesValidator;
};});

关于javascript - 如何使用 mixin 覆盖这个函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73388617/

相关文章:

javascript - 如何让区域监听 Marionette 中布局触发的事件?

javascript - 在 codeigniter 中将代码转换为 MVC 类型

javascript - 我可以在类中修改 DOM 吗?

jquery - Bootstrap 3 - 表单提交到 "_blank"

MAGENTO 从子类别中获取描述

javascript - 允许正则表达式以句点或减号开头

jquery - 如何使用jquery添加一个类来列出有无序列表子项的列表?

javascript - 更改复选框上的下拉菜单

Magento Paypal 支付标准未在结帐页面中显示为选项

php - 对于 Mysql 和 Oracle 表,从 PHP 中的变量将多行插入表中