簡體   English   中英

如何在odoo中繼承或覆蓋js文件?

[英]How to inherit or override js file in odoo?

我想更改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更改為其他內容

提前致謝

這個問題有一個很好的答案/示例,它給出了很好的概述。 該示例實際上比全局JavaScript更改要深入一些。

如果您確定要覆蓋的功能,則通常只需鏡像核心並進行所需的覆蓋即可。 以下是有關如何更改name_search JavaScript行為的示例概述:

your_module / 清單 .py

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

your_module /視圖/ 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>

your_module /靜態/ 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,
};

});

您可以像在google_calendar

odoo.define('youmodule.yourmodule', function (require) {
   "use strict";
   var CompletionFieldMixin = require('web.CompletionFieldMixin');

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

   CompletionFieldMixin.include({
       // You need to redefine the function here
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM