2016-05-12 47 views
1

我已经成功地从Point_of_Sale模块扩展了“PosTicket”模板,并在该现有模板中包含了几个字段。我还写了类似于screen.js(render_reciept)中的函数来获取新添加的字段的值。我面临的问题是,我无法调用该函数。如何执行该功能?如何在Odoo 9的JS文件中执行一个函数?

这是延长模板:

<?xml version="1.0" encoding="UTF-8"?> 
<template> 
    <t t-extend="PosTicket"> 
     <t t-jquery=".receipt-orderlines" 
      t-operation="before"> 
     customer name:<t t-esc="customer_name"/> 
      <br /> 
    customer street:<t t-esc="street"/> 
      <br /> 
    customer city:<t t-esc="city"/> 
      <br /> 
     </t> 
    </t> 
</template> 

这是js文件:

odoo.define('custom_module.print_cust_details_pos_bill', function (require) { 
    "use strict"; 
    var core = require('web.core'); 
    var screens = require('point_of_sale.screens'); 
    var gui = require('point_of_sale.gui'); 
    var QWeb = core.qweb; 

    var BillScreenWidget = screens.ReceiptScreenWidget.extend({ 
     template: 'BillScreenWidget', 
     show: function(){ 
     this._super(); 
     var self = this; 
     this.render_receipt(); 
    }, 

    render_receipt: function(){ 
     console.log("Render Reciept funtion called"); 
     this._super(); 
     //RKD-Start 
     var customer = this.pos.get_order().get_client(); 
     var street = ''; 
     var city =''; 
     var customer_name=''; 
     if (customer != undefined) 
     { 
      customer_name = customer.name; 
      street = customer.street; 
      city=customer.city; 
     } 

     this.$('.pos-receipt-container').html(QWeb.render('PosTicket',{ 
      widget:this, 
      order: order, 
      receipt: order.export_for_printing(), 
      orderlines: order.get_orderlines(), 
      paymentlines: order.get_paymentlines(), 
      customer_name:customer_name, 
      customer_street:street, 
      city:city, 
     })); 

     //RKD-End 
     } 

    }); 
    gui.define_screen({name:'receipt', widget: custom_module.BillScreenWidget}); 
}); 

回答

0

你试图将其调入start?这被称为无论何时在DOM中注入小部件,看起来像这样做的地方。 在official docs中检查“使用小工具”。

相关问题