覆盖插件功能
Override addon function
我想覆盖 DockYard ember-changeset-validations
插件中的一个方法,这样我就可以通过 I18n 翻译错误消息。
这是函数所在的文件:https://github.com/DockYard/ember-changeset-validations/blob/master/addon/utils/get-messages.js
有什么方法可以覆盖此 getMessages()
方法而不必分叉整个存储库?
ember-cli 使用 define/require 对。所以你可以在初始化程序的某个地方放代码
let oldImplementation = require('ember-changeset-validations/utils/get-messages').default;
define('ember-changeset-validations/utils/get-messages', ['exports', 'ember', 'ember-changeset-validations/utils/messages'], function (exports, Ember, defaultMessages) {
// override module implementation here
exports['default'] = oldImplementation;
});
这样您将重新定义模块(因此您应该保持模块的接口相同)。但它是丑陋的 hack
我想覆盖 DockYard ember-changeset-validations
插件中的一个方法,这样我就可以通过 I18n 翻译错误消息。
这是函数所在的文件:https://github.com/DockYard/ember-changeset-validations/blob/master/addon/utils/get-messages.js
有什么方法可以覆盖此 getMessages()
方法而不必分叉整个存储库?
ember-cli 使用 define/require 对。所以你可以在初始化程序的某个地方放代码
let oldImplementation = require('ember-changeset-validations/utils/get-messages').default;
define('ember-changeset-validations/utils/get-messages', ['exports', 'ember', 'ember-changeset-validations/utils/messages'], function (exports, Ember, defaultMessages) {
// override module implementation here
exports['default'] = oldImplementation;
});
这样您将重新定义模块(因此您应该保持模块的接口相同)。但它是丑陋的 hack