在odoo中测试一个简单的javascript函数

时间:2018-01-03 09:45:30

标签: javascript xml odoo-10

我正在尝试在odoo 10中创建一个简单的javascript代码。所以在myModule \ static \ src \ js文件夹下我添加了一个包含此代码的test.js文件:

alert("it works!!");

在myModule \ views下,我添加了一个包含以下代码的xml文件:

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

当我更新模块并刷新odoo时,它工作正常。现在我想按下按钮时调用这个js代码。所以我改变了这样的js代码:

function clickMe(){
    alert("it works!!");
};

然后在我的表格中添加了这个按钮:

<button name="test_js" string="Test Javascript File" type="object" class="btn-primary" onclick="clickMe()"/>

现在显示按钮,但我没有警报框!!

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

看起来我错过了很多其他的javascript代码,所以我的方法可以正常工作。我们不能只添加这样的方法:

function clickMe(){
    alert("it works!!");
};

这是正确的js代码:

odoo.define('solixyProject.kanban_view', function (require){
"use strict";
var form_widget = require('web.form_widgets');
var core = require('web.core');
var _t = core._t;
var QWeb = core.qweb;

form_widget.WidgetButton.include({
    on_click: function() {
         if(this.node.attrs.custom === "click"){

            alert("It works!!");

            return;
         }
         this._super();
    },
});
});

这是正确的xml代码:

<button string="Test Javascript Onclick Method" custom="click" />

这个问题给了我很多帮助: Odoo javascript onclick event