Odoo的网页模块QWEB简述.docxVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Odoo的网页模块QWEB简述

Odoo/OpenERP的网页模块QWEB简述1.web模块注意,OpenERP模块中web部分用到的所有文件必须被放置在模块内的static文件夹里。这是强制性的,出于安全考虑。事实上,我们创建的文件夹CSS,JS和XML,仅仅是一个习惯。static文件夹oepetstore/static/css/petstore.css是我们的CSS文件。oepetstore/static/xml/petstore.xml是一个XML文件,将包含我们QWeb的模板。oepetstore/static/js/petstore.js包含应用程序的JavaScript代码。像OpenERP的XML文件包含了视图或数据一样,必须在__openerp__.py文件内标明这些文件。下面是我们增加的行,它告诉web client必须记载这些文件:js:[static/src/js/*.js],css:[static/src/css/*.css],qweb:[static/src/xml/*.xml],OpenERP内,默认会把所有的JavaScript文件连接为一个文件。然后,我们执行一个叫minification的操作。minification将移除文件中的所有的注释、空格和换行符。最后,发送这个文件给用户浏览器。但这么做的缺点,是无法调试应用程序。为了避免这种副作用,仍然能够调试的解决办法是:在OpenERP的URL后面添加一个参数?debug.添加后的URL:http://localhost:8069/?debug当您使用带debug参数的URL,应用程序将不会执行串联所有minification的JavaScript文件这个过程。应用程序也将需要更多的时间来加载,但你能进行调试开发了。在前面的章节中,我们解释了JavaScript缺少命名空间机制,来分割在不同的JavaScript文件中声明的变量。并且我们提出了模块模式这个简单方法。模块模式(如app.js文件):(function(){app={};function?main(){console.log(launch application);};app.main=main;})();在OpenERP的web框架内,有个类似于模块模式的等价物,集成了该框架的其余部分。请注意,OpenERP的Web模块与其他OpenERP的addon模块概念上是不同的,一个addon模块是一个包含很多文件的文件夹,web模块仅仅是一个有命名空间概念的JavaScript。1)模块oepetstore/static/js/petstore.js声明了这样的模块:openerp.oepetstore=function(instance){instance.oepetstore={};instance.oepetstore.XXX=;}在OpenERP的Web框架内,通过声明一个函数来声明一个JavaScript模块,并把这个函数放在全局变量openerp的属性内.这个属性名称必须和OpenERP addon模块名称一致(这addon模块名为oepetstore,我应把函数赋值给openerp.oepetstore属性。如果换成openerp.petstore属性,则无法正常运行)。当Web客户端转载这个addon模块时,该函数将被调用。将传入一个名为instance的参数,这个参数代表当前OpenERP的Web客户端实例,包含了所有相关当前会话数据,以及所有Web模块的变量。在instance对象内创建与addon模块名称一致的新命名空间是个惯例。这就是为什么我们在instance.oepetstore设置一个空dictionary。这个dictionary就是命名空间,用来声明我们模块内自己使用的所有类和变量。2)类JavaScript不像其他面向对象编程语言那样有类机制。更确切地说,它提供了面向对象编程语言元素,但你必须自己定义,自己选择如何做。OpenERP?Web框架提供工具来简化这个过程,让程序员以类似其他编程语言,如Java的方式编码。定义一个新类,你需要从instance.web.Class类继承。语法如下:instance.oepetstore.MyClass=instance.web.Class.extend({say_hello:function(){console.log(hello);},});类的实例化:var my_object=new instance.oepetstore.MyClass();my_object.say_hello();类可以有一个构造函数,它方法名为init()。你可以像大多数开发语言那样,传递参数给构造器:instance.oepetstore.MyClass

文档评论(0)

xcs88858 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档