【问题标题】:Call from one widget to another widget using odoo js使用 odoo js 从一个小部件调用另一个小部件
【发布时间】:2018-08-07 05:47:13
【问题描述】:

Js Xml 路径:module_name-static-src-xml:

    <div t-name="widget_1">
       <button type="button" id = "button_1" >Click</button>
      <div id = "test"> </div>
   </div>
   <div t-name="widget_2">
        <p>Second Widget</p>
   </div>

Js:

odoo.define("module_name.name", function(require) {
    "use strict";

 var Widget = require("web.Widget");

    var Widget_Extend = Widget.extend({
        template: "widget_1",

        start: function() {
             var self = this;
             $(document).ready(function(){
                   setTimeout(function(){
                        $(document).on("click", "#button_1", function() {
                            var widget_call = '';
                            widget_call = '<div id ="test"></div>'
                            widget_call + = '<t t-call="widget_2"/>'
                            $('#test').html(widget_call);
                        });
                   });
             });
        }
    });

 core.action_registry.add("module_name.name", Widget_Extend);
});

注意: 我曾尝试使用 js 调用“widget_2”,但我无法得到我所期望的。我不确定这是调用小部件的方式,但我已经尝试了很多。如果有人有其他方法可以使用 js 从第一个小部件调用第二个小部件,请告诉我。

预测有关此问题的所有信息。

谢谢。

【问题讨论】:

    标签: odoo-8 odoo-10 odoo-9 odoo-11


    【解决方案1】:

    您可以将一个小部件继承到另一个小部件作为示例,它可能如下所示:

    // in file a.js
    odoo.define('module.A', function (require) {
        "use strict";
    
        var A = ...;
    
        return A;
    });
    
    // in file b.js
    odoo.define('module.B', function (require) {
        "use strict";
    
        var A = require('module.A');
    
        var B = ...; // something that involves A
    
        return B;
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-09-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-17
      • 2020-02-22
      • 2015-02-06
      • 1970-01-01
      相关资源
      最近更新 更多