Openerp 在odoo 10中为pos创建一个小部件
我正在尝试创建一个自定义小部件 *.jsOpenerp 在odoo 10中为pos创建一个小部件,openerp,odoo-10,Openerp,Odoo 10,我正在尝试创建一个自定义小部件 *.js odoo.define('pos_widget',function (require) { var PosBaseWidget = require('point_of_sale.BaseWidget'); aleert('Alert One');//It alerts var NewWidget = PosBaseWidget.extend({ template: 'NewWidget', init: function(parent,options){
odoo.define('pos_widget',function (require) {
var PosBaseWidget = require('point_of_sale.BaseWidget');
aleert('Alert One');//It alerts
var NewWidget = PosBaseWidget.extend({
template: 'NewWidget',
init: function(parent,options){
alert('Alert Two inside init function'); // It not alerts
var self = this;
},
});
});
但在控制台上获取错误:
Error: Service pos_widget already defined boot.js:119:27
No type for action Object { context: Object } action_manager.js:631:13
error: Some modules could not be started
Failed modules: Array [ "point_of_sale.chrome" ]
Non loaded modules: Array [ "point_of_sale.main" ]
Debug: Object { point_of_sale.main: Object, point_of_sale.chrome: Object }
注意
我已经在chrome.js
文件(销售模块的点)中直接添加了这些行,并且工作正常。但不在自定义模块中
我如何解决这个问题 您使用的名称似乎是冲突
'pos\u widget'
使用modulename.pos\u custom\u小部件将其更改为,检查xml文件中给定的js文件路径。应该是这样的: XML文件:
<?xml version="1.0" encoding="utf-8"?>
odoo.define('custom_module.file_name', function (require) {
"use strict";
var PosBaseWidget = require('point_of_sale.BaseWidget');
var TableWidget = PosBaseWidget.extend({
template: 'TableWidget',
init: function(parent, options){
this._super(parent, options);
alert("Custom Widget");
}
});
});
'data': [
'views/pos_restaurant_views.xml',
],
在此之后,在清单中添加xml文件,如下所示:
清单文件:
<?xml version="1.0" encoding="utf-8"?>
odoo.define('custom_module.file_name', function (require) {
"use strict";
var PosBaseWidget = require('point_of_sale.BaseWidget');
var TableWidget = PosBaseWidget.extend({
template: 'TableWidget',
init: function(parent, options){
this._super(parent, options);
alert("Custom Widget");
}
});
});
'data': [
'views/pos_restaurant_views.xml',
],
在此之后,您还必须在xml文件中创建qweb模板。并在清单中添加此qweb temlpate,如下所示:
清单中的qweb模板
'qweb': [
'static/src/xml/qweb_file.xml',
],
在此之后,在前面运行您的POS。您是否检查了POS是否调用了您的文件??您可以通过在其中添加警报来检查它。我添加了两个警报。第一个成功执行,第二个未成功执行。我已经更新了我的问题,看一看。谢谢。在init函数中调用super如下:this.\u super(父级,选项);在此之后,重新加载会话并进行检查。