WB8使用说明-基础(引用)

1、静态引用链接:

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

需要在页面中引用的css链接列表。该属性仅在首页或在iframe中运行的模块内有效,内置模块页面引用css请使用Wb.addLink方法。

jsLinks : Array

需要在页面中引用的js链接列表。该属性仅在首页或在iframe中运行的模块内有效,内置模块页面引用js请使用Wb.addLink方法。

2、动态应用链接:

Wb.addLink( [links], [callback], [recursive] )

动态在文档header中注入js和css链接,加载成功后执行指定的回调方法。

Wb.addLink(['file.css', 'file.js', {url: 'file', type: 'js'}], fn, true);

Parameters

links : Array (optional)

需要加载的js或css链接列表。如果链接类型未明需要在对象中显式指明url和type属性。

callback : Function (optional)

加载完成js和css后执行的方法。

recursive : Boolean (optional)

是否采用递归加载,递归加载是依次加载链接,加载完成上后再加载下一个链接。默认为false。

一般在viewport的afterRender事件加载

3、引用模块

引用模块有以下5种方法:
1、设置模块的importModules属性(可以直接拖动模块到该属性),可以通过app.importXwlI(i为索引号)来访问导入模块的命名空间

举例:

在importModules属性设置,["m?xwl=examples/basic/import-module/imported-module"]

被调用的module配置如下,serverscript

//执行初始化操作
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#}<br>通过客户端引用方法计算得到:' + minusVal,width: 230
});

 上述{#addedVal#},来自serverscript调用被引用模块的代码,如下:

//注: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、添加server->xwl控件并设置file属性,可以通过app.xwl1(xwl1为控件的itemId)来访问导入模块的命名空间

使用xwl控件引用的模块会在主模块销毁时自动销毁

//打开xwl控件引用的窗口
app.xwl1.window1.show(); //窗口在主模块销毁时自动销毁

打开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,关闭时仅隐藏
  }
});

 非单例模式,该窗口关闭时销毁

Wb.run({url: 'm?xwl=examples/basic/import-module/dynamic-invoke',success: function(scope) {scope.window1.show();//window1的closeAction设置为destroy,window1关闭时仅销毁window1本身,window1所在的模块不会销毁,//如果该模块还存在需要销毁的其他资源,那么可以在window1的destroy事件中添加代码:Wb.destroy(app, app.window1);来销毁整个模块//此例dynamic-invoke模块仅包含window1本身,因此不需要销毁整个模块
  }
});

 

4、在ServerScript中使用app.execute/Wb.execute方法,详见API中对这两个方法的描述说明和区别
5、在Java中使用WbUtil.run/WbUtil.invoke方法,详见API中对这两个方法的描述说明和区别

注意:显示模块内的窗口

app.window1.show(); //该窗口时关闭时默认为隐藏
//如果不希望窗口在模块关闭时销毁,可以把window1的引用从app中删除
//delete app.window1; delete app._window1;//删除引用,使窗口不在模块关闭时销毁
//如果窗口的createInstance属性设置为false,app.window1指向实例,app._window1指定配置对象

 

4、引用其他第三方插件,例如百度地图、写字板、代码编写器等

步骤1:viewport下面放一个panel容器,居中或全屏 flat : Boolean 是否创建透明且无边框的面板。 

步骤2:viewport的afterRender写事件render()

 

5、html与WB混合开发

一般html开发都是在viewport的属性HTML下进行的,混合开发设置viewport的属性createObject为true,此属性的意义为:是否根据该控件html属性中dom控件的obj属性指定的对象表达式创建对象实例。

HTML代码如下:注意代码中对于民族obj直接设置为一个非实例化的combox控件,非常的简便

<div style="padding:8px;"><table class="wb_tb" border="1" cellpadding="4" style="width:500px"><tr><td width="80px" class="wb_gray">姓名</td><td obj="{itemId:'name',xtype:'textfield',allowBlank:false,width:160}"></td><td width="80px" class="wb_gray">性别</td><td obj="{itemId:'sex',xtype:'radiogroup',width:160,items:[{boxLabel:'男'},{boxLabel:'女',checked:true}]}"></td></tr><tr><td class="wb_gray">出生日期</td><td>##{itemId:'birthdate',xtype:'datefield',width:160}</td><td class="wb_gray">民族</td><td obj="nation"></td></tr><tr><td class="wb_gray">住址</td><td colspan="3" obj="{itemId:'address',xtype:'textfield',width:'100%'}"></td></tr></table>
</div>
View Code

 

 获取值: Wb.info(Wb.encode(Wb.getValue(app.viewport1))); 

设置值: Wb.setValue(app.viewport1, { name: 'Your name', sex: 0, birthdate: new Date() }); 

验证: Wb.verify(app.viewport1); 

修改:

app.viewport1.update("<table><tr><td>这是动态生成的页面:</td><td obj=\"{itemId:'name',xtype:'textfield',allowBlank:false,width:160}\"></td><tr></table>");
app.viewport1.updateObject(); //根据dom的obj属性动态生成控件

6、国际化

@str.name方式,实现方式简单,此处不加以介绍

转载于:https://www.cnblogs.com/wychytu/p/7944817.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/368606.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

jQuary总结11:jQuery插件封装---jQuery封装 手风琴 动画插件

完整代码下载点击我的GitHub: https://github.com/XingJYGo/jquery-accordion 1 手风琴的效果展示如下: 2 封装插件目录结构如下: 主要包括:HTML结构, CCS样式,JS文件以及jquary库. 3 插件封装步骤如下: 3-1首先,编写HTML静态结构: <div id"box"><ul><…

Spring MVC:表单处理卷。 2 –复选框处理

很难想象现代Web应用程序中没有表单复选框的情况。 在之前的一篇文章中&#xff0c;我写了有关Spring MVC中的表单处理的文章 &#xff0c;作为本系列文章的续篇&#xff0c;我将写有关Spring MVC表单的文章&#xff0c;尤其是关于复选框处理的文章 。 这篇文章将介绍标签的标准…

给你的博客换个装-园子换装指南

博客园有很多漂亮的皮肤&#xff0c;但总是有一些地方我不大喜欢&#xff0c;所以经过慎重考虑&#xff0c;我决定亲自动手换个装。本文将介绍博客园换装的一些基础&#xff08;不涉及标准皮肤的做法&#xff09;&#xff0c;如果你想让你的博客更炫&#xff0c;可以参考本文入…

表格过滤器_气缸选型其实并不复杂,知道这些再也不怕选错气缸(附计算表格)...

文/第e机械气动系统概述在介绍气缸之前我们先了解一下气动系统。气动控制技术在国民经济各个领域&#xff0c;最近这些年, 它与传感器技术、电子信息技术密切融合&#xff0c;发展成为包括控制、传动和检测等在内的自动化技术, 现在已发展成为自动化领域的重要组成部分。气动控…

java中equals()和==的区别

java中的数据类型 基础数据类型 基础数据类型有byte、short、char、int、long、float、double、bool、String。除了 String 会比较地址,其它的基础类型的比较,使用 和 equals() 两者都是比较值。 String类的equals()方法源码 1 public boolean equals(Object anObject) {2 …

乒乓球比赛赛程_10月5日至10月11日中央电视台直播录播乒乓球比赛安排

10月5日至10月11日这一周中央电视台居然没有播乒乓球比赛?全国乒乓球锦标赛从5日开始进行各单项比赛&#xff0c;7日进行混双决赛&#xff0c;9日进行男双决赛和女单决赛&#xff0c;10日进行女双决赛和男单决赛。场场都是精彩好看的比赛&#xff0c;中央电视台体育频道一场都…

集合实例(集合覆盖)

集合覆盖是一种优化求解问题&#xff0c;对很多组合数学和资源选择问题给出了很好的抽象模型。 问题如下&#xff1a;给定一个集合S&#xff0c;集合P由集合S的子集A1到An组成&#xff0c;集合C由集合P中的一个或多个子集组成。如果S中的每个成员都包含在C的至少一个子集中则称…

关闭运动轨迹_网球初学者如何正确入门网球运动,有哪些学习细节

网球是一个非常有趣的球类运动。 当您开始入门时&#xff0c;您会越来越喜欢它。 那么网球初学者应该如何正确入门呢&#xff1f; 有什么独特的入门经验&#xff1f;即使没有网球经验&#xff0c;只要您能正确正确地进行定期训练&#xff0c;仍然可以取得很大的进步。首先&…

phpstorm+wamp+xdebug配置php调试环境

本篇文章主要是&#xff1a;教大家如果搭建一套phpstormwampxdebug调试php的环境现在大多数的程序员使用的调试方式一般都是echo, var_dump, file_put_contents等其他方式&#xff0c;效率比较低下&#xff0c;因此我们有必要学习用工具调试&#xff0c;工具调试主要可以用来解…

计算机专用英语1500词带音标,带音标的计算机英语1500词

带音标的计算机英语1500词 (46页)本资源提供全文预览&#xff0c;点击全文预览即可全文预览,如果喜欢文档就下载吧&#xff0c;查找使用更方便哦&#xff01;29.9 积分&#xfeff;计算机专用英语词汇1500词《电脑专业英语》1. file [fail] n. 文件&#xff1b;v. 保存文件 2. …

需求改进与系统设计

第一部分 需求与原型改进 1.1改进的原型 1.1.1 改进说明 相较上一次的原型&#xff0c;这一次我们确定了主题颜色&#xff0c;并且使功能一眼就能看懂&#xff0c;让新用户能很快上手。 并且进一步完善了前期的调查问卷分析。得出结论同学们不去食堂吃饭的大部分原因是排队…

了解ADF Faces clientComponent属性

我相信大多数ADF开发人员都知道ADF Faces属性clientComponent 。 在这篇文章中&#xff0c;我将展示此属性实际上如何影响组件渲染以及它如何改变其行为。 让我们开始考虑一个非常简单的示例&#xff1a; <af:inputText label"Label 1" id"it1" /> …

谈谈一些有趣的CSS题目(十五)-- 谈谈 CSS 关键字 initial、inherit 和 unset

开本系列&#xff0c;谈谈一些有趣的 CSS 题目&#xff0c;题目类型天马行空&#xff0c;想到什么说什么&#xff0c;不仅为了拓宽一下解决问题的思路&#xff0c;更涉及一些容易忽视的 CSS 细节。解题不考虑兼容性&#xff0c;题目天马行空&#xff0c;想到什么说什么&#x…

小程序沉浸式_企业开发小程序:客户裂变式增长

最近几年&#xff0c;各行各业中都有不少企业、商家获客难窘境。因此&#xff0c;很多企业、商家想知道&#xff1a;"怎么做&#xff0c;才能获取到大量流量&#xff1f;"小编给大家推荐一种方式&#xff1a;开发一个微信小程序&#xff0c;然后利用小程序来获取大量…

[CSS] Scale on Hover with Transition

效果 源码 <!doctype html><html class"outline color"><head><meta charset"utf-8"><title>图片scale动画</title><style>.img-box {position: relative;width: 740px;height: 420px;overflow: hidden;}/* 彩色…

热敏电阻温度特性曲线_热敏电阻与体温计的应用关系

相信体温计大家都熟悉&#xff0c;热敏电阻与体温计的应用关系大家都知道吗&#xff1f;热敏电阻热敏电阻探头测量体温的原理又是什么呢&#xff0c;小编跟大家分析一下&#xff0c;希望以下详细的介绍能帮助到大家&#xff01;热敏电阻探头测量体温的原理分析如下&#xff1a;…

1.Strategy Pattern(策略模式)

策略模式&#xff08;Strategy Pattern&#xff09;&#xff1a; 我的理解&#xff0c;将代码中每个变化之处抽出&#xff0c;提炼成一个一个的接口或者抽象类&#xff0c;让这些变化实现接口或继承抽象类成为具体的变化类。再利用多态的功能&#xff0c;可将变化之处用接口或抽…

Spring MVC + Hibernate + Maven:CRUD操作示例

在本文中&#xff0c;我想研究一个Spring MVC Hibernate Maven用法的示例。 这套技术暗含领域领域的基础知识。 因此&#xff0c;我将尝试详细解释所有重要时刻。 其他没有主题的内容将提供指向更多详细信息源的链接。 在文章的结尾&#xff0c;我将发布GitHub的链接。 目标…

画出的点做交互_设计之下交互设计原型设计之概念设计

目录//交互设计//「设计之下」---交互设计&#xff1a;交互设计师是做什么的&#xff1f;上线的产品中那一块是交互设计师的产物呢&#xff1f;项目启动1.1「设计之下」---交互设计&#xff1a;项目启动之从想法到项目&#xff0c;什么是项目&#xff1f;1.2「设计之下」---交互…

Java集合之TreeMap源码解析上篇

上期回顾 上期我从树型结构谈到了红黑树的概念以及自平衡的各种变化&#xff08;指路上期←戳&#xff09;&#xff0c;本期我将会对TreeMap结合红黑树理论进行解读。 首先&#xff0c;我们先来回忆一下红黑树的5条基本规则。 1.结点是红色或者黑色&#xff0c; 2.根结点为黑色…