Javascript 可以在JS中继承函数并添加代码行

Javascript 可以在JS中继承函数并添加代码行,javascript,odoo,odoo-12,Javascript,Odoo,Odoo 12,我试图在创建的JS函数中添加代码行,但我不能在事件中间插入尝试继承函数。 例如,我有一个变量:var my_new_var=$(this.val().toString() 这是allready定义的代码,我需要在params:{}字典中插入我的新变量: odoo.define('portal.signature\u form',函数(require){ “严格使用”; //vars和requires var SignatureForm=Widget.extend({ 模板:“portal.po

我试图在创建的JS函数中添加代码行,但我不能在事件中间插入尝试继承函数。

例如,我有一个变量:
var my_new_var=$(this.val().toString()

这是allready定义的代码,我需要在params:{}字典中插入我的新变量:

odoo.define('portal.signature\u form',函数(require){
“严格使用”;
//vars和requires
var SignatureForm=Widget.extend({
模板:“portal.portal\u签名”,
活动:{
“单击#打开门户(签名)清除”:“清除签名”,
'单击.o\u门户\签名\提交':'提交签名',
'初始化#o#门户(签名)接受':'初始化签名',
},
//初始化标志和清除标志事件
提交符号:功能(ev){
ev.preventDefault();
var self=这个;
var$confirm_btn=self.$el.find('button[type=“submit”]”);
var partner_name=self.$(“#o#u门户_签名_name”).val();
var signature=self.$(“#o#u门户_signature”).jSignature('getData','image');
var为空=签名?此。空\u签名[1]==签名[1]:true;
此.$('.#o#U portal_sign_name').parent().toggleClass('o#has_error',!partner_name.).find('.form control,.custom select').toggleClass('is-invalid',!partner_name');
此.$('o#u门户\符号\绘图').toggleClass('bg-danger text white',为空);
如果(为空| |!合作伙伴|名称){
返回false;
}
$confirm_btn.prepend(“”);
$confirm_btn.attr('disabled',true);
返回rpc.query({
路线:this.options.callUrl,
参数:{
“res_id”:this.options.resId,
“访问令牌”:this.options.accessToken,
“合作伙伴名称”:合作伙伴名称,
“签名”:签名?签名[1]:false,
//**********************在这里,我需要添加我的新行**************************
“我的新变量”:我的新变量,
},
}).then(功能(数据){
self.$('.fa微调器').remove();
if(data.error){
self.$('.o_portal_sign_error_msg')。remove();
$confirm_btn.before(qweb.render('portal.portal_signature_error',{message:data.error}));
$confirm_btn.attr('disabled',false);
}
else if(data.success){
$confirm_btn.remove();
var$success=qweb.render(“portal.portal\u signature\u success”,{widget:data});
self.$('#o#u portal_sign_draw').parent().replaceWith($success);
}
if(数据强制刷新){
if(data.redirect\u url){
window.location=data.redirect\u url;
}否则{
window.location.reload();
}
}
});
},
...
});

为了使扩展正常工作,您需要导入脚本。为此,您必须扩展XML文件,其中odoo加载所有要使用的JS。以下是一个示例:



通过正常的继承,我想你不能,我正在搜索类似的东西,但没有找到解决方案,当我使用debug时,我发现请求会立即发送到服务器。此时,我决定完全重写函数,幸运的是,我在return语句中返回类的实例,所以我重写了t属性和继承流没有被破坏。我所做的是monkey patchingSo,如果我知道这是可能的?如果只是覆盖所有代码并调用我的新代码?如果可能的话,我怎么做(禁用现有代码并启用我的新代码)?谢谢你的回复!@CharifDZI明白,通过这段代码,你是指添加一个新的js文件,其功能被完全覆盖?@AlonsoYes。此外,你必须继承这个小部件。我将编辑我的答案以添加一些指导原则。