jquery - Odoo Pos-QWeb2 : Error while extending template No expression given

标签 jquery xml odoo odoo-9

我正在使用 Odoo 9,并且正在尝试复制付款按钮。我想将 50+ 按钮复制到左侧。

enter image description here

我尝试添加

<t t-extend="PaymentScreen-Paymentmethods">
        <div class="paymentmethods">
            <button class="mode-button" data-action='+50'>+50</button>
        </div>
            </t>

但我得到的只是 POS 中的黑屏。当我检查页面上的元素时,出现以下错误

Error: QWeb2: Error while extending template 'PaymentScreen-PaymentmethodsNo expression given

最佳答案

<t t-extend="PaymentScreen-Paymentmethods">
        <t t-jquery='.paymentmethods' t-operation='append'>
            <div class="button mode-button" data-action='+50'>
                    +50
             </div>
        </t>
    </t>

好吧,那么您还需要扩展小部件并重写该方法。

odoo.define('module_name.jsfilename', function (require) {
"use strict";
var PosBaseWidget = require('point_of_sale.screens');
var gui = require('point_of_sale.gui');
var QWeb = core.qweb;
var _t = core._t;

var PaymentScreenWidget = PaymentScreenWidget.extend({
init: function(parent, options) {
        var self = this;
        this._super(parent, options);
},
render_paymentmethods: function() {
        var self = this;
        var methods = $(QWeb.render('PaymentScreen-Paymentmethods', { widget:this }));
            methods.on('click','.paymentmethod',function(){
                self.click_paymentmethods($(this).data('id'));
            });
            methods.on('click','.mode-button',function(){
                self.click_numpad($(this));
            });
        return methods;
    },

});
});

然后您需要将该 js 文件添加到销售点后端,如下所示。

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

那么该 xml 应该位于您的 manifest.xml 中。

试试这个代码。我确信现在肯定有效。

关于jquery - Odoo Pos-QWeb2 : Error while extending template No expression given,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44505541/

相关文章:

openerp - odoo 中何时使用 api.one 和 api.multi |开瓶器?

javascript - 从 CSV 文件返回值 (jQuery/Javascript)

javascript - $(...).pushpin 不是函数 - reactJs、Materializecss

jquery - 为什么 jQuery 选择了错误的元素?

python - 如何在Python中使用xpath访问表值

java - Servlet 启动错误 - "The requested resource is not available"

javascript - 如何根据与其他 div 的百分比来定位 div?

c# - 实现复合数据类型的自定义 XML 序列化/反序列化?

android - 有没有人将 ODOO 与 Android 集成?

python - 如何获取记录的名称并将其显示在表单上