Javascript 我创建了一个小部件。我如何使用它?

Javascript 我创建了一个小部件。我如何使用它?,javascript,odoo,odoo-12,Javascript,Odoo,Odoo 12,我创建了一个自定义模块来定义一个小部件。以下是.js文件和QWeb模板: bh_sidebar.js bh_sidebar.xml 我已使用以下方法将这两个添加到后端资产: <odoo> <data> <template id="assets_backend" inherit_id="web.assets_backend"> <xpath expr="script[last()]" position="

我创建了一个自定义模块来定义一个小部件。以下是.js文件和QWeb模板:

bh_sidebar.js bh_sidebar.xml

我已使用以下方法将这两个添加到后端资产:

<odoo>
    <data>
        <template id="assets_backend" inherit_id="web.assets_backend">
            <xpath expr="script[last()]" position="after">
                <script type="text/javascript" src="/sidebar_widget/static/src/js/bh_sidebar.js"></script>
                <!-- <script type="text/javascript" src="/sidebar_widget/static/src/js/renderer.js"></script> -->
                <link rel="stylesheet" type="text/scss" href="/sidebar_widget/static/src/scss/widget.scss"></link>
            </xpath>
        </template>
    </data>
</odoo>

我还将模板添加到清单文件中

这个小部件应该显示一个带有两个链接的红色矩形,按钮1和按钮2。我希望这个小部件独立于任何类型的视图,并且只显示在Odoo导航栏下方的屏幕顶部。我该怎么做?如果我尝试按原样运行代码,则什么也不会发生。我已经干了一个星期了。我在网上找不到任何帮助。这些文件在刑事上已经过时,资源匮乏

我将感谢任何帮助。
谢谢。

我认为您应该使用控制器机制呈现此视图,这将使此视图独立于其他视图。

您的小部件不会被实例化并自动插入DOM。要做到这一点,您可以连接到任何已经存在的高级小部件。例如,在WebClient上使用
show_应用程序
方法:

var WebClient = require('web.WebClient');

WebClient.include({

    show_application: function () {
        var sup = this._super.apply(this, arguments);

        // Instantiate
        var sidebar = new bh_sidebar();

        // Insert in DOM
        sidebar.insertAfter(this.$('.o_main'));

        return sup;
    },

});
<odoo>
    <data>
        <template id="assets_backend" inherit_id="web.assets_backend">
            <xpath expr="script[last()]" position="after">
                <script type="text/javascript" src="/sidebar_widget/static/src/js/bh_sidebar.js"></script>
                <!-- <script type="text/javascript" src="/sidebar_widget/static/src/js/renderer.js"></script> -->
                <link rel="stylesheet" type="text/scss" href="/sidebar_widget/static/src/scss/widget.scss"></link>
            </xpath>
        </template>
    </data>
</odoo>
var WebClient = require('web.WebClient');

WebClient.include({

    show_application: function () {
        var sup = this._super.apply(this, arguments);

        // Instantiate
        var sidebar = new bh_sidebar();

        // Insert in DOM
        sidebar.insertAfter(this.$('.o_main'));

        return sup;
    },

});