我正在尝试在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()"/>
现在显示按钮,但我没有警报框!!
感谢您的帮助。
答案 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