通过设置如下属性来来静态引用CSS和JS

动态在文档中注入js和css链接,加载成功后执行指定的回调方法 。
Wb.addLink(['file.css', 'file.js', {url: 'file', type: 'js'}], fn, true);
links: Array ()
需要加载的js或css链接列表 。如果链接类型未明需要在对象中显式指明url和type属性 。
:()
加载完成js和css后执行的方法 。
:()
是否采用递归加载,递归加载是依次加载链接,加载完成上后再加载下一个链接 。默认为false 。
一般在的事件加载
3、引用模块
引用模块有以下5种方法:
1、设置模块的属性(可以直接拖动模块到该属性),可以通过app.(i为索引号)来访问导入模块的命名空间
举例:
在属性设置,["m?xwl=/basic/-/-"]
被调用的配置如下,
//执行初始化操作request.setAttribute('myVar', 'abc');//定义模块公共服务器端方法,app为服务端本次请求共享的对象Wb.apply(app, {add: function(val1, val2) {return val1 + val2;},minus: function(val1, val2) {return val1 - val2;}});
JS代码
//执行初始化操作或定义私有成员var foo = 'bar';//定义公共客户端方法Wb.apply(app, {add: function(val1, val2) {return val1 + val2;},minus: function(val1, val2) {return val1 - val2;}});//也可以使用以下方法,把方法定义上级模块// Wb.apply(contextOwner, {//contextOwner为上级模块客户端app对象//add: function(val1, val2) {//return val1 + val2;//},//minus: function(val1, val2) {//return val1 - val2;//}// });//contextOwner.contextOwner为上级模块的容器上下文对象
View Code
前端调用被引用的模块方法,包括JS方法和SS方法、属性
var minusVal = app.importXwl1.minus(7, 5); //minus方法在子模块imported-module的initialize内定义Wb.tip({html: '通过服务端引用方法计算得到:{#addedVal#}
通过客户端引用方法计算得到:' + minusVal,width: 230});
上述{##},来自调用被引用模块的代码,如下:
//注:serverScript在importModules之后运行,initScript在importModules之前运行//app.execute('m?xwl=examples/basic/import-module/imported-module');在后台调用imported-module模块request.setAttribute('addedVal', Integer.toString(app.add(3, 5))); //app.add方法在子模块imported-module的serverScript内定义
2、添加->xwl控件并设置file属性,可以通过app.xwl1(xwl1为控件的)来访问导入模块的命名空间
使用xwl控件引用的模块会在主模块销毁时自动销毁
//打开xwl控件引用的窗口app.xwl1.window1.show(); //窗口在主模块销毁时自动销毁
【通过设置如下属性来来静态引用CSS和JS】打开xwl控件引用的页面
var card, cardConfig = app.xwl1._panel1; //_panel1指向配置对象, panel1在创建实例后指向实例if (!app.cardIndex)app.cardIndex = 1;Wb.apply(cardConfig, {itemId: Wb.getId(), //也可以根据业务规则标识itemId,以方便查找指定cardtitle: 'Card' + (app.cardIndex++),closable: true});card = app.tab1.add(cardConfig);app.tab1.setActiveTab(card);
3、通过Wb.run/Wb.open方法来引用模块 。使用该方法引用的模块在主模块销毁时不会自动销毁被引用的模块,可以使用如下方法销毁:
Wb.run({url:module,success:function(scope){app.myScope=scope;//myScope可为任意名称 。把引用的模块命名空间scope注册到主模块的命名空间app,通过该方法在主模块销毁时自动销毁引用的模块}});
详细分为两种方式,单例模式
被引用的模块组间已经初始化好,该窗口关闭时隐藏
Wb.run({url: 'm?xwl=examples/basic/import-module/dynamic-invoke-single',single: true, //单例模式,在第2次运行时系统不重新运行dynamic-invoke-single模块,而是直接访问上次的对象,该对象的生命周期同整个页面success: function(scope) {scope.window1.show(); //window1的closeAction默认为hide,关闭时仅隐藏}});