【问题标题】:how to write events for formview inside header buttons? odoo 10如何在标题按钮内为 formview 编写事件?奥多 10
【发布时间】:2017-07-27 12:33:05
【问题描述】:

我在 odoo10 社区尝试过这段代码,但没有成功,我的错是什么?

或者谁能指导我怎么做?

    openerp.module_name= function (instance) {

            var _t = instance.web._t, QWeb = instance.web.qweb;

                instance.web.FormView = instance.web.FormView.include({
                init: function() {
                        this._super.apply(this, arguments);
                        console.log("test"+this.getParent().dataset.model); 
                    },
                    events: {
                       'click #target': 'button_clicked',
                    },
                    button_clicked : function(ev) { 
                        console.log("test333555555");
                        ev.preventDefault();
                        ev.stopPropagation();
                        console.log("test 333333333333");
                    });         

                 },

            });
};

【问题讨论】:

  • 嗨 viki Chavada,你知道解决方案吗..
  • 那么,您希望标题上的按钮意味着表单视图中的创建和编辑按钮的位置吗?
  • 不是那个按钮,它在表单视图内部,例如在销售订单表单conformsale 中,取消按钮......
  • 上述所有代码中的第一个不适用于 odoov10。其次,你能告诉我你想在表单视图中单击该按钮时执行什么操作吗?
  • 我通过 cmis js api 使用 alfresco 和 odoo 集成,使用这个 js api 我想创建 cmis 会话,我在表单内有按钮,如 canel,确认哪个在表单内。不编辑,创建,保存,然后我想在那个按钮上执行点击事件..就是这样

标签: javascript openerp odoo-10


【解决方案1】:

第一个创建按钮,您想在任何地方创建并进行一些修改。

<button string="Click" custom="click"/>

然后创建一个 JS 文件,其中包含以下代码。

odoo.define('YOUR_MODULE.FILENAME', 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"){

            // YOUR CODE

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

将此 JS 添加到 XML

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

在 __manifest__.py 中添加该 xml

{
...
...
'data': [
        ...
        'views/above_xml_filename.xml',
    ],
....
}

我希望这对你有用。

【讨论】:

  • 把你的email-id放在这里我会联系你的。
  • 您好 KLN,我遇到了这个弹出框的问题。你能帮我吗? @KLN
  • 请帮我在odoo11中做。我已经在 odoo 11 中尝试过此代码。但我收到一个错误“web.form_widgets”缺少依赖项。
猜你喜欢
  • 1970-01-01
  • 2011-03-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多