Openerp 如何在Odoo 11中重写JS变量?

Openerp 如何在Odoo 11中重写JS变量?,openerp,odoo-11,Openerp,Odoo 11,假设下面的类存在 local.MyWidget = instance.Widget.extend({ events: { "click .my_button": "button_clicked", }, button_clicked: function() { console.log("Button Clicked"); } }); 我想在变量中再添加一个事件,如下所示 MyWidget.include({ events:

假设下面的类存在

local.MyWidget = instance.Widget.extend({
    events: {
        "click .my_button": "button_clicked",
    },
    button_clicked: function() {
        console.log("Button Clicked");
    }
});
我想在变量中再添加一个事件,如下所示

MyWidget.include({
    events: {
        "click .new_button": "new_button_clicked",
    },

    new_button_clicked: function() {
        console.log("New Button Clicked.");
    }
});
上述方法不起作用,我得到的错误是

事件未定义


如何在odoo中实现这一点?

您也可以这样做:

MyWidget.include({
    init: function(parent, options) {
        this.events["click .new_button"] = "new_button_clicked";
        this._super(parent, options);
    },

    new_button_clicked: function() {
        console.log("New Button Clicked.");
    } 
});

您也可以这样做:

MyWidget.include({
    init: function(parent, options) {
        this.events["click .new_button"] = "new_button_clicked";
        this._super(parent, options);
    },

    new_button_clicked: function() {
        console.log("New Button Clicked.");
    } 
});

嗨,Lucas,调用this.super方法之前需要初始化this.events,更改才能生效。我已经编辑了你的答案,请批准,我会将答案标记为正确。批准。谢谢你的反馈Vivek。@Vivek为什么我会得到这个。事件没有用这个定义?注意:我正在使用ListView。ListView中可能未定义include({..})@mkchx事件。请检查它是否存在。嗨,Lucas,在调用this.super方法之前需要初始化this.events,以使更改生效。我已经编辑了你的答案,请批准,我会将答案标记为正确。批准。谢谢你的反馈Vivek。@Vivek为什么我会得到这个。事件没有用这个定义?注意:我正在使用ListView。ListView中可能未定义include({..})@mkchx事件。请检查它是否存在。