我在 Odoo 中定义了当前自定义 javascript 视图的扩展:
openerp.account_move_journal_test = function(instance){
var _t = instance.web._t,
_lt = instance.web._lt;
var QWeb = instance.web.qweb;
instance.web.account.QuickAddListView.include({
init: function(){
this._super.apply(this, arguments);
console.log("QuickAddListView modified init")
},
});
};
现在为了更好地表示,我添加了控制台登录QuickAddListView
and in ListView
,这些父母被称为使用_super
.
所以如果我像这样运行它,我会得到这些打印结果:
'ListView init' // This is parent of QuickAddListView
'QuickAddListView Init'
'QuickAddListView modified init'
构造函数的顺序是这样的View
-> ListView
-> QuickAddListView
所以所有这些都按应有的方式打印,但我想要的是修改init
以一种直接调用的方式ListView
并跳过QuickAddListView
原来的init
.
所以之后它应该只打印这个(意味着原始的 QuickAddListView init 没有被调用):
'ListView init' // This is parent of QuickAddListView
'QuickAddListView modified init'
javascript 有没有办法指定您想要调用的确切父级?因此,它不会称所有内容都在链中,而是从您指定的位置开始(就像我的情况一样)ListView
)?
例如,在 Python 中你可以这样做:
from some_module import SomeBaseClass
class CustomBase(SomeBaseClass):
def m1(self):
super(CustomBase, self).m1()
class Custom(CustomBase):
def m1(self):
# skip CustomBase
super(CustomBase, self).m1()