Magento2 переписать файл javascript из основного модуля в пользовательский модуль [дубликат]
Я создал пользовательский модуль, который использует компонент пользовательского интерфейса
<uiComponent name="product_listing"/>
В принципе, я хочу создать файл javascript в своем модуле, который перезаписывает/переопределяет только исходную часть js-файла этого компонента:
vendor/magento/module-ui/view/base/web/js/grid/provider.js:
/**
* Reloads data with current parameters.
*/
reload: function () {
this.trigger('reload');
if (this.request && this.request.readyState !== 4) {
this.request.abort();
}
console.log(this);
this.request = $.ajax({
url: this['update_url'],
method: 'GET',
data: this.get('params'),
dataType: 'json'
});
this.request
.done(this.onReload)
.error(this.onError);
},
Может ли кто-нибудь, пожалуйста, подсказать мне, как сделать это наилучшим и эффективным способом? Спасибо!
1
Author: Lachezar Raychev, 2016-02-29
1 answers
Вы можете попробовать функцию "mixins", все, что вам нужно, это создать модуль RequireJS с помощью расширенного метода, подобного этому:
Default_mixin.js :
define(function () {
'use strict';
return function (target) { // target == Result that Magento_Ui/... returns.
var parent_reload = target.reload;
target.reload = function () {
console.log('before reload');
parent_reload.apply(this, arguments); //call parent reload
console.log('after reload');
}
return target; // new result that all other modules receive
};
});
Requirejs-config.js :
config: {
mixins: {
'Magento_Ui/web/js/grid/provider.js': { // Target module
'My_Module/js/payment/default_mixin': true // Extender module
}
}
}
1
Author: KAndy, 2016-02-29 10:43:11