新しい管理グリッドシステムを備えた新しいUIモジュールからJavaScriptを拡張する必要があります。デフォルトのUiコンポーネントを拡張するとヒントが得られ、いくつかのコードを設定できました。
# file: app/code/My/Module/view/adminhtml/web/js/gid/massactions.js
console.log('new massactions.js');
define([
'Magento_Ui/js/grid/massactions'
], function (massactions) {
console.log('before extend');
return massactions.extend({
defaultCallback: function (action, data) {
console.log('custom callback');
}
});
});
ご覧のとおり、3つconsole.log
ありますが、defaultCallback
1つは呼び出されていないため、期待どおりにメソッドを上書きしていませんが、定義が読み込まれたことは確認できます。
公平を期すために、追加した新しいアクションにカスタムコールバックを追加したいと思います。元のmassactions.js
には_getCallback
、massactionアイテムのコールバックを取得しようとするがありますが(上書きしようとしているdefaultCallbackへのフォールバック)、を使用しても、そこにコールバックを追加することができませんでしたview/ui_component/sales_order_grid.xml
。
どんな助けでも大歓迎です。
更新1:を使用してメソッドを上書きできますmassactions.prototype.defaultCallback = function(){}
。これが副次的な効果をもたらすかどうかはわからないので、質問は残しておきます。
グリッドにグリッドを修正してみてください。
—
Mykhailo Shatilov 2017
massactions.prototype.defaultCallback = function
。そのような場合、使用せずに何が欠けていextend
ますか?