gpt4 book ai didi

javascript - odoo 10 - "Overwriting"来自旧模块的 Javascript 代码

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:25:16 24 4
gpt4 key购买 nike

我正在尝试对新模块中的某些 javascript 进行更改,但我终究无法理解我做错了什么。

https://github.com/odoo/odoo/blob/10.0/addons/hr_attendance/static/src/js/kiosk_confirm.js

这是我要更改的代码,特别是这个片段:

this.next_action = 'hr_attendance.hr_attendance_action_kiosk_mode';

这是我到目前为止得到的代码,我认为这是最接近正确代码的迭代:

odoo.define('tko_hr_attendance.script', function(require) {
"use strict";

var core = require('web.core');
var Model = require('web.Model');
var Widget = require('web.Widget');

var QWeb = core.qweb;
var _t = core._t;


instance.web.WebClient.include({


init: function (parent, action) {
this._super.apply(this, arguments);
this.next_action = 'mail.mail_channel_action_client_chat';
return this._super();
},
});
});

这是我的 xml:

<?xml version="1.0" encoding="utf-8"?>
<odoo>
<template id="assets_backend_custom_id" name="tko_hr_attendance assets" inherit_id="web.assets_backend">
<xpath expr="." position="inside">
<script type="text/javascript" src="/tko_hr_attendance/static/src/js/script.js"></script>
</xpath>
</template>
</odoo>

我已经尝试按照 odoo 8、9 和 10 中的示例进行操作,但我认为它们不适用于我尝试进行的特定更改,或者我不完全了解更改的应用方式。

最佳答案

要覆盖 init 首先,您需要获取该类,您会在他们放在这里的最后一段代码中看到

   core.action_registry.add('hr_attendance_kiosk_confirm', KioskConfirm);

他们将其添加到 action_registry,您应该使用相同的 key 。

            var  KioskConfirm = core.action_registry.get('hr_attendance_kiosk_confirm');

然后使用 include 覆盖 init 方法,但在大多数情况下您应该始终调用 super。

       KioskConfirm.include({
init : function (){
this._super.applay(this, arguments)
//.your code here
}
});

为了更好地理解 javascript,请阅读 odoo 教程构建扩展界面,一天后您将非常了解如何去做

关于javascript - odoo 10 - "Overwriting"来自旧模块的 Javascript 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46471911/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com