我正在嘗試修改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