Tôi cần mở rộng một javascript từ mô-đun ui mới có hệ thống lưới quản trị mới. Mở rộng một thành phần Ui mặc định cho tôi một gợi ý và tôi đã có thể thiết lập một số mã:
# 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');
}
});
});
Như bạn có thể thấy, tôi có ba console.log
, nhưng defaultCallback
một cái không được gọi, vì vậy nó không ghi đè lên phương thức như tôi mong đợi, nhưng tôi có thể chắc chắn rằng định nghĩa đã được tải.
Để công bằng, tôi muốn thêm một cuộc gọi lại tùy chỉnh cho một hành động mới mà tôi đã thêm. Trong bản gốc massactions.js
, chúng tôi có một _getCallback
nỗ lực để lấy một cuộc gọi lại cho một mục khối lượng (dự phòng thành defaultCallback, mà tôi đang cố ghi đè lên), nhưng tôi không thể quản lý để thêm một cuộc gọi lại ở đó, thậm chí sử dụng view/ui_component/sales_order_grid.xml
.
Bất kỳ trợ giúp sẽ được đánh giá rất cao.
Cập nhật 1 : Tôi có thể ghi đè phương thức bằng cách sử dụng massactions.prototype.defaultCallback = function(){}
. Tôi không chắc điều này có ảnh hưởng gì đến tài sản thế chấp không, vì vậy tôi bỏ ngỏ câu hỏi.
massactions.prototype.defaultCallback = function
. Trong trường hợp như vậy, tôi thiếu gì khi không sử dụngextend
?