javascript - 如何在odoo中继承或覆盖js文件?

标签 javascript python-2.7 odoo-10

我想更改 js 文件中的函数。怎么做?有什么方法可以覆盖该功能吗?

addons/web/static/src/js/views/form_common.js,

我想更改function-get_search_result: function(search_val){}

dataset.name_search(search_val, self.build_domain(), 'ilike', 160).done(function(_data) {self._search_create_popup("search", _data);}

需要将值 160 更改为其他值

提前致谢

最佳答案

this question 上有一个很好的答案/示例,这给出了一个很好的概述。该示例实际上比全局 JavaScript 更改所需的更深入。

如果您确定了要覆盖的功能,那么它主要只是镜像核心和进行所需覆盖的问题。以下是如何更改 name_search JavaScript 行为的示例概述:

你的模块/ list .py

...
'data': [
    ...
    'views/assets.xml',
    ...
],
...

你的模块/views/assets.xml

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

你的模块/static/src/js/custom.js

odoo.define('your_module.custom_feature', function(require) {
"use strict";

Class = require('web.Class');
mixins = require('web.mixins');

var DataSet = Class.extend(mixins.PropertiesMixin, {
    name_search: function (name, domain, operator, limit) {
        /* Custom code to override/extend core */
    },
});

return {
    DataSet: DataSet,
};

});

关于javascript - 如何在odoo中继承或覆盖js文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50186406/

相关文章:

python - 在 python eve 应用程序中执行 PUT、PATCH 返回,请求的 URL 不允许该方法

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

javascript - 将服务器端存储的 javascript 文件添加到 html (node.js)

javascript - 使用 onsubmit 进行表单验证始终返回 true 采取行动

java - 在 Android 上使用 addJavascriptInterface() 传递 JavaScript 对象

python - 不同IDE的除法结果不同

javascript - js-ctypes : Pointer to intptr_t

python - 从演示文稿文件中提取图像

odoo - odoo 9 中的可点击状态栏

python - 单击取消按钮时 odoo-10 序列增量