Tôi đang cố sửa đổi tiện ích web_tree_image
. Thay vì chỉ hiển thị một hình ảnh nhỏ trong cột, tôi muốn một hình ảnh lớn hơn xuất hiện khi lơ lửng hoặc nhấp chuột. Để đạt được điều này, tôi đang cố gắng thêm một cuộc gọi lại sau khi tiện ích được hiển thị, bằng cách ghi đè hàm start
, như được giải thích trong the documentation.Thêm gọi lại vào phần tử DOM được tạo trong lớp con của web.list.Column
do đó tôi đã thêm đoạn mã sau vào web_tree_image.js:
openerp.web_tree_image = function (instance) {
instance.web.list.Image = instance.web.list.Column.extend({
// [...]
start: function() {
console.log("start called");
// [... add callbacks ...]
},
// [...]
});
};
Tuy nhiên, start
chức năng không bao giờ được gọi là, vì vậy đây không hoạt động.
Tôi chưa hiểu đầy đủ về đường dẫn mã thường dẫn đến số start
được gọi, nhưng có vẻ như nó khác bằng cách nào đó cho web.list.Column
.
Nên start
được gọi và tôi đang làm điều gì sai? Hoặc có cách nào khác để thực thi mã sau khi các phần tử DOM đã được tạo không?
Hãy thử với 'include' thay vì' extend' – ChesuCR
Nó cũng không hoạt động với 'include'; Ngoài ra, [tài liệu] (https://www.odoo.com/documentation/8.0/reference/javascript.html#subclassing-widget) nêu rõ rằng nó sẽ hoạt động với 'extend'. – ValarDohaeris
Tôi không quen thuộc với Odoo nhưng theo tài liệu bạn phải * Tạo cá thể * với 'var my_widget = new MyWidget (this);' và * Render và chèn vào DOM * với 'my_widget.appendTo (". Some-div ");' – Anonymous0day