我正在尝试修改web_tree_image
小部件。我不想在列中显示小图片,而是在悬停或点击时显示更大的图片。为了达到这个目的,我试图通过覆盖start
函数来渲染小部件后添加一个回调函数,如the documentation中所解释的。向web.list.Column的子类中创建的DOM元素添加回调
因此,我下面的代码添加到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 ...]
},
// [...]
});
};
然而,start
函数没有被调用,所以这是行不通的。
我还没有完全理解代码路径,通常会导致start
被调用,但它似乎是web.list.Column
不知何故不同。
应该调用start
,我做错了什么?或者在创建DOM元素之后还有另一种执行代码的方式?
尝试使用'include'而不是'extend' – ChesuCR
它不适用于'include';另外,[documentation](https://www.odoo.com/documentation/8.0/reference/javascript.html#subclassing-widget)明确指出它应该与'extend'一起工作。 – ValarDohaeris
我不熟悉Odoo,但根据文档,您必须*使用var my_widget = new MyWidget(this)创建实例*并使用'my_widget.appendTo(“。* some-div “);' – Anonymous0day