Ich versuche, das Widget web_tree_image
zu ändern. Anstatt nur ein kleines Bild in der Spalte zu zeigen, möchte ich ein größeres Bild beim Schweben oder Klicken anzeigen. Um dies zu erreichen, versuche ich einen Callback hinzuzufügen, nachdem das Widget gerendert wurde, indem ich die start
-Funktion außer Kraft setze, wie in the documentation erklärt.Hinzufügen von Rückruf zu DOM-Element erstellt in Unterklasse von web.list.Column
Ich habe deshalb den folgenden Code 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 ...]
},
// [...]
});
};
jedoch die start
Funktion nie aufgerufen wird, so dass dies nicht funktioniert.
Ich habe nicht vollständig verstanden, den Code-Pfad, der normalerweise zu start
aufgerufen wird, aber es scheint, dass es irgendwie anders für ist.
Sollte start
aufgerufen werden und ich mache etwas falsch? Oder gibt es eine andere Art, Code auszuführen, nachdem die DOM-Elemente erstellt wurden?
Versuchen Sie mit 'include' anstelle von' extend' – ChesuCR
Es funktioniert nicht mit 'include' entweder; Außerdem gibt die [Dokumentation] (https://www.odoo.com/documentation/8.0/reference/javascript.html#subclassing-widget) eindeutig an, dass sie mit "extend" arbeiten sollte. – ValarDohaeris
Ich bin nicht vertraut mit Odoo aber nach der Dokumentation müssen Sie * Erstellen Sie die Instanz * mit 'var my_widget = new MyWidget (this);' und * Rendern und Einfügen in DOM * mit 'my_widget.appendTo (". Some-div ");' – Anonymous0day