Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Openerp 在odoo 10中为pos创建一个小部件_Openerp_Odoo 10 - Fatal编程技术网

Openerp 在odoo 10中为pos创建一个小部件

Openerp 在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){

我正在尝试创建一个自定义小部件

*.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){
     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(父级,选项);在此之后,重新加载会话并进行检查。