【问题标题】:Odoo: javascript. Can't access some view constructsOdoo:JavaScript。无法访问某些视图结构
【发布时间】:2017-06-15 15:51:48
【问题描述】:

我不明白这里发生了什么,但我无法访问某些 Odoo 视图。特别是,我需要访问gantt 视图。

所以运行这个

odoo.define('mymodule.myWidgetName', function (require) {
"use strict";

var core = require('web.core');
var data_manager = require('web.data_manager');

console.log('list ' + core.view_registry.get('list'));
console.log('calendar ' + core.view_registry.get('calendar'));
console.log('diagram ' + core.view_registry.get('diagram'));
console.log('form ' + core.view_registry.get('form'));
console.log('graph ' + core.view_registry.get('graph'));
console.log('grid ' + core.view_registry.get('grid'));
console.log('kanban ' + core.view_registry.get('kanban'));
console.log('gantt ' + core.view_registry.get('gantt'));
console.log('tree' + core.view_registry.get('tree'));
console.log('many2many_kanban ' + core.view_registry.get('many2many_kanban'));
console.log('one2many_kanban '+ core.view_registry.get('one2many_kanban'));
console.log('pivot ' + core.view_registry.get('pivot'));

});

日志输出是这样的:

list function Class(){if(this.constructor!==OdooClass){throw new Error("You can only instanciate objects with the 'new' operator");}
this._super=null;if(!initializing&&this.init){var ret=this.init.apply(this,arguments);if(ret){return ret;}}
return this;}

web.assets_backend.js:3126 calendar undefined

web.assets_backend.js:3126 diagram undefined

web.assets_backend.js:3126 form function Class(){if(this.constructor!==OdooClass){throw new Error("You can only instanciate objects with the 'new' operator");}
this._super=null;if(!initializing&&this.init){var ret=this.init.apply(this,arguments);if(ret){return ret;}}
return this;}

web.assets_backend.js:3126 graph function Class(){if(this.constructor!==OdooClass){throw new Error("You can only instanciate objects with the 'new' operator");}
this._super=null;if(!initializing&&this.init){var ret=this.init.apply(this,arguments);if(ret){return ret;}}
return this;}

web.assets_backend.js:3126 grid function Class(){if(this.constructor!==OdooClass){throw new Error("You can only instanciate objects with the 'new' operator");}
this._super=null;if(!initializing&&this.init){var ret=this.init.apply(this,arguments);if(ret){return ret;}}
return this;}

web.assets_backend.js:3126 kanban undefined

web.assets_backend.js:3126 gantt undefined

web.assets_backend.js:3126 tree function Class(){if(this.constructor!==OdooClass){throw new Error("You can only instanciate objects with the 'new' operator");}
this._super=null;if(!initializing&&this.init){var ret=this.init.apply(this,arguments);if(ret){return ret;}}
return this;}

web.assets_backend.js:3126 many2many_kanban undefined

web.assets_backend.js:3126 one2many_kanban undefined

web.assets_backend.js:3126 pivot function Class(){if(this.constructor!==OdooClass){throw new Error("You can only instanciate objects with the 'new' operator");}
this._super=null;if(!initializing&&this.init){var ret=this.init.apply(this,arguments);if(ret){return ret;}}
return this;}

正如您从日志中看到的那样,ganttkanban 之类的视图是未定义的。虽然如果我登录console.log(core.view_registry.map))。我可以看到他们每个人都有他们的构造值 - 我的意思是看起来每个视图都被定义了..

所以core.view.registry.map 日志输出如下:

正如您所见,有些视图是未定义的,即使我看到它们已在那里注册并且应该可以访问。如果我console.log(core.view_registry.map) 它返回:

calendar: function Class()
diagram: function Class()
form: function Class()
gantt: function Class()
graph: function Class()
grid: function Class()
kanban: function Class()
list: function Class()
many2many_kanban: function Class()
one2many_kanban: function Class()
pivot: function Class()
tree: function Class()

如您所见,每个键都有其构造。那么为什么有些是未定义的呢?..

那么这里到底发生了什么?我在这里漏掉了一些问题吗?

如果在这种情况下依赖关系很重要,我的模块同时依赖于webweb_gantt(它定义了gantt 视图,尽管我猜无论如何应该只需要web_gantt 作为依赖关系)。

还研究了gantt 视图是如何定义的:

core.view_registry.add('gantt', GanttView);
return GanttView;

看起来应该很简单,我应该可以访问GanttView,但由于某种原因我不能..

【问题讨论】:

    标签: javascript openerp odoo-10


    【解决方案1】:

    可以直接访问gantt 视图,而无需使用var GanttView = require('web_gantt.GanttView') 进入view_registry。虽然如果无法从那里访问,将视图注册到注册表中仍然没有意义。

    【讨论】:

      猜你喜欢
      • 2022-12-21
      • 2019-11-23
      • 2013-10-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-18
      • 2017-02-03
      • 1970-01-01
      相关资源
      最近更新 更多