【问题标题】:Extend Magento 2 rules.js without overwriting the core js file?扩展 Magento 2 rules.js 而不覆盖核心 js 文件?
【发布时间】:2017-12-11 19:39:09
【问题描述】:

是否可以在不映射文件的情况下覆盖 Magento_Ui/js/lib/validation/rules.js 文件,如下例所示?

var config = {
    "map": {
        "*" : {
            'Magento_Ui/js/lib/validation/rules' : 'Test_Custom/js/validation/rules'
        }
    }
};

是否有更优雅的方式来添加可用于结帐步骤的表单验证?

谢谢

【问题讨论】:

  • 如何在 magento 2 中覆盖文件 D:\xampp\htdocs\Project\vendor\magento\module-ui\view\base\web\js\lib\validation\rules.js。因为,我想添加自定义错误类
  • 已复制 请检查这个,工作正常。 stackoverflow.com/questions/44971910/…

标签: validation magento magento2 extend


【解决方案1】:

在 Vendor/Module/view/adminhtml/ 中创建 requirejs-config.js

var config = {
config: {
    mixins: {
        'Magento_Ui/js/lib/validation/rules': {
            'Vendor_Module/js/lib/validation/rules': true
           }
         }
      }
 };

在 Vendor/Module/view/base/web/js/lib/validation 中创建 rules.js

define([
'jquery',
'underscore',
'moment',
'mage/translate'
], function ($, _, moment) {
'use strict';

return function (validator) {
    var validators = {
        'validate-number-custom': [
            function (value) {
                console.log("You logic here");
                return /^[a-zA-Z ]*$/i.test(value);
            },
            $.mage.__('Please enter a valid number in this field.')
        ]
    };

    validators = _.mapObject(validators, function (data) {
        return {
            handler: data[0],
            message: data[1]
        };
    });

    return $.extend(validator, validators);
  };
});

【讨论】:

    猜你喜欢
    • 2012-08-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多