快捷搜索:  汽车  科技

pscloud升级代码(Cloud网页模块QWEB简述之模块与类的介绍)

pscloud升级代码(Cloud网页模块QWEB简述之模块与类的介绍)在PS Cloud的web框架内,有个类似于模块模式的等价物,集成了该框架的其余部分。请注意,PS Cloud的Web模块与其他PS Cloud的addon模块概念上是不同的,一个addon模块是一个包含很多文件的文件夹,web模块仅仅是一个有命名空间概念的JavaScript。})();console.log("launch application"); }; app.main=main;

浪潮ERP PS Cloud模块模式(如app.js文件):

(function(){

app={};

function main(){

console.log("launch application");

};

app.main=main;

})();

在PS Cloud的web框架内,有个类似于模块模式的等价物,集成了该框架的其余部分。请注意,PS Cloud的Web模块与其他PS Cloud的addon模块概念上是不同的,一个addon模块是一个包含很多文件的文件夹,web模块仅仅是一个有命名空间概念的JavaScript。

pscloud升级代码(Cloud网页模块QWEB简述之模块与类的介绍)(1)

1)模块

oepetstore/static/js/petstore.js声明了这样的模块:

openerp.oepetstore=function(instance){

instance.oepetstore={};

instance.oepetstore.XXX=......;

}

在PS Cloud的Web框架内,通过声明一个函数来声明一个JavaScript模块,并把这个函数放在全局变量openerp的属性内.这个属性名称必须和PS Cloud addon模块名称一致。当Web客户端转载这个addon模块时,该函数将被调用。将传入一个名为instance的参数,这个参数代表当前PS Cloud的Web客户端实例,包含了所有相关当前会话数据,以及所有Web模块的变量。 在instance对象内创建与addon模块名称一致的新命名空间是个惯例。这就是为什么我们在 instance.oepetstore设置一个空dictionary。这个dictionary就是命名空间,用来声明我们模块内自己使用的所有类和变量。

2)类

JavaScript不像其他面向对象编程语言那样有类机制。更确切地说,它提供了面向对象编程语言元素,但你必须自己定义,自己选择如何做。

定义一个新类,你需要从instance.web.Class类继承。语法如下:

instance.oepetstore.MyClass=instance.web.Class.extend({

say_hello:function(){

console.log("hello");

}

});

猜您喜欢: