【发布时间】:2017-04-06 08:46:25
【问题描述】:
在库存模块中,条形码扫描仪页面由 widget.js 和通过 qweb 的picking.xml 处理。
我需要重写该行为以添加功能。到目前为止,我已经能够覆盖 xml:
<templates id="template" xml:space="preserve">
<t t-extend="PickingEditorWidget">
<t t-jquery="#js_packconf_select" t-operation="after">
<p>Hello World!</p>
</t>
</t>
</templates>
但是关于 js 部分我被卡住了。 我需要覆盖 PickingEditorWidget 中某些函数的行为,但在 widget.js 中,它首先包含在对象 openerp.stock 中,然后整个 openerp.stock 被一个函数覆盖:
openerp.stock = function(openerp) {
openerp.stock = openerp.stock || {};
openerp_picking_widgets(openerp);
}
我已经看到每个模块中都有这种代码,那么,我怎样才能改变(例如)这个函数的工作方式,而不必用我的小改动重写整个 stock/widget.js?
this.$('.js_pack_configure').click(function(){
....
})
我不是 JS 专家,我想不通...
编辑:
我在我的模块清单中放入了 stock 模块的依赖项,现在我看到了 PickingEditorWidget 对象,但我仍然无法让它发挥我的更改作用
我的代码(widget.js)是:
function openerp_picking_widgets_extended(instance){
var module = instance.mrp_extended;
module.PickingEditorWidgetExtended = instance.stock.PickingEditorWidget.include({
renderElement: function(){
this.$('.js_pack_configure').click(function(){
<my code>
});
this.$('.js_validate_pack').click(function(){
<my code>
});
this._super();
},
});
}
openerp.mrp_extended = function(openerp) {
openerp.mrp_extended = openerp.mrp_extended || {};
openerp_picking_widgets_extended(openerp);
}
【问题讨论】:
标签: javascript openerp odoo-8 qweb