javascript控件开发之页面控制器

本篇,我们主要实现页面控制器,简单说就是用于控制当前html对应的js类,我们将在上一篇的基础上继续增加新的代码,首先,我们在common文件夹下添加pageControllor.js文件,该文件,继承com.baseObject对象,代码比较简单,主要目的是要把页面上的控件对象,移到控制器类中

/**
* 页面控制基类
* 创建:qzz
* 日期: 2014-05-01
*/
(function(undefined) {
pageControllor = Extend(com.baseObject, {
/**
* 初始化函数
*/
create:function(option) {
this.base(option);
this.className = "pageControllor";
this.logInfo("create");
//在render时,把控件都收集在thisWindow.com对象中,
if(this.isNotEmpty(thisWindow)
&& this.isNotEmpty(thisWindow.com)) {
for(var key in thisWindow.com) {
this[key] = thisWindow.com[key];
}
}
}
});
})();

把该文件也添加到加载列表中,如下

staticScript = [
"../css/com.comStyle.css",
"extend.js",
"nameSpace.js",
"../component/com.baseObject.js",
"../component/ui/com.ui.window.js",
"../component/ui/com.ui.button.js",
"pageControllor.js",
"render.js"
]

接着我们把页面的控制器类放到body的code属性上,
因此,对init.js加载函数startup做调整,把body.code属性读出,并且加载到页面中,

function startUp() {
//获取相对路径
var initsrc = thisWindow.getPath();
//加载script列表
thisWindow.Import(["staticScript.js"], function(state) {
if (state && typeof staticScript != "undefined") {
var len = staticScript.length;
//加载列表中的js
thisWindow.Import(staticScript, function(state) {
//读取页面控制器
var bdy = document.getElementsByTagName("body")[0];
if(state && typeof bdy !== "undefined"
&& typeof bdy.attributes.code !== "undefined"){
//加载页面控制器
thisWindow.Import(bdy.attributes.code.nodeValue,
function(state) {
//回调加载后事件
if (typeof thisWindow.onShow == "function") {
thisWindow.onShow();
}
});
} else {
//回调加载后事件
if (typeof thisWindow.onShow == "function") {
thisWindow.onShow();
}
}
}, initsrc);
}
}, initsrc);
};

接着在web目录下添加controllor目录,添加test.js文件并编写testControllor类继承pageControllor对象,
在该文件中,会执行一个 thisWindow.onShow事件,该事件是页面加载后的回调事件,在该事件中创建控制器对象,并执行初始化方法initPage

/**
* test.html页面控制类
* 创建:qzz
* 日期: 2014-05-01
*/
(function(undefined) {
/**
* 控制类
*/
testControllor = Extend(pageControllor, {
//初始化页面
initPage:function() {
//修改页面上的控件属性,绑定事件
this.test2.onClick = function() {
alert("确定");
}
this.test2.setCaption("确定");
this.test2.setWidth(50);
this.test3.onClick = function() {
alert("取消");
}
this.test3.setCaption("取消");
}
});
})();
/**
* 页面对象创建,且启动
*/
thisWindow.onShow = function() {
var tc = new testControllor();
tc.initPage();
}

同时,给页面test.html添加控制器code属性

<!DOCTYPE html>
<head><title>test</title>
<script src="../script/common/init.js" type="text/javascript"></script>
</head>
<body code="controllor/test.js">
<div id='test1' code='com.ui.window' option='{"height":"100","width":"100","border":0}'></div>
<div id='test2' code='com.ui.button' option='{"height":"25","width":"100","top":"200","left":"100"}'></div>
<div id='test3' code='com.ui.button' option='{"height":"25","width":"100","top":"100","left":"200"}'></div>
</body>
</html>

这样,用浏览器打开test.html页面后,点击上面的按钮,就会弹出控制器上绑定的事件中弹出的内容。
到此,也许大家会觉得实现这些功能,直接给dom元素绑定事件就能做到,不用这么麻烦,这个想法没错,不过后续会有更复杂的控件实现,到时就会发现这个框架的优势,第一,页面的元素编写,会大大的简化,第二,控制用的js,可以更专注于业务上的开发,网上这么多框架, 对于开发来说框架有什么样的意义相信大家都懂的。
可下载附件代码
请关注下一编, javascript控件开发之布局控件
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Workbench是一个用于创建和自定义业务流程的工具。通过JavaScript的二次开发,可以为Workbench添加更多功能和定制化选项。 第一步是了解Workbench的基本架构和API。Workbench使用SoqlQuery语言查询数据库,并使用JavaScript、HTML和CSS构建用户界面。理解这个架构和API是进行二次开发的基础。 之后可以根据需求进行功能的开发和定制。比如,可以添加自定义的表单和字段,以满足特定的业务需求。也可以通过JavaScript添加逻辑和流程制,使得系统更加智能和灵活。 另外,可以通过JavaScript进行一些数据处理和操作。比如,可以通过JavaScript计算字段值、验证用户输入、处理数据关联等。这样可以扩展和增强Workbench的数据处理能力。 在进行二次开发之前,需要先对Workbench进行配置和准备。可以通过Workbench的管理界面添加自定义对象、字段和布局,以及定义业务流程和权限制等。 最后,测试和部署是二次开发过程中的重要环节。通过测试可以保证开发的功能和逻辑是正确的。部署则是将开发好的功能发布到正式环境,供用户使用。 总的来说,Workbench的JavaScript二次开发可以通过扩展和定制功能,增加系统的灵活性和可用性。通过了解和熟悉Workbench的架构和API,以及进行开发和部署,可以实现满足特定需求的定制化系统。 ### 回答2: workbench是一个用于开发和定制Salesforce平台的工具。它提供了许多功能,使开发人员能够创建和修改JavaScript代码以扩展Salesforce应用程序的功能。 在workbench中进行JavaScript二次开发开发人员可以使用JavaScript语言来编写自定义代码,以满足特定业务需求。他们可以通过workbench的集成开发环境(IDE)编辑和调试JavaScript代码,并使用Salesforce平台的API来访问和操作数据。 通过workbench进行JavaScript二次开发开发人员可以创建自定义按钮、自定义页面和验证规则等,以增强和定制Salesforce应用程序的功能。他们可以使用JavaScript来处理用户的输入和操作,并对数据进行验证和处理。通过使用workbench的开发工具,如代码编辑器和调试器,开发人员可以更轻松地编写和测试JavaScript代码,以确保其正确性和可靠性。 另外,workbench还提供了一些内置函数和库,用于简化JavaScript开发过程。这些函数和库提供了许多常见的功能和操作,如字符串处理、日期计算和数据转换等。开发人员可以利用这些功能来加快开发过程,并减少出错的可能性。 总而言之,workbench是一个强大的工具,可以支持JavaScript二次开发。通过使用它,开发人员可以使用JavaScript语言来编写和修改Salesforce应用程序的代码,以实现定制的业务需求。无论是创建自定义按钮、自定义页面还是验证规则,workbench都提供了一系列的功能和工具,帮助开发人员更轻松地开发和测试JavaScript代码。 ### 回答3: Workbench JavaScript二次开发是指在Workbench平台上使用JavaScript进行自定义开发的过程。Workbench平台是一个基于Web的集成开发环境,主要用于创建、编辑和管理业务流程和工作任务。 通过JavaScript的二次开发,我们可以根据实际需求对Workbench平台进行定制化的扩展和优化。以下是几个常见的二次开发场景: 1. 自定义表单:通过JavaScript可以对Workbench平台提供的默认表单进行修改和自定义,实现更符合业务需求的数据展示和填写方式。你可以调整表单的布局、样式,增加自定义的校验和计算逻辑,甚至可以集成其他第三方件和工具。 2. 定制动作按钮:Workbench平台通常提供了一些默认的动作按钮,比如保存、提交、撤回等。通过JavaScript的二次开发,可以新增自定义的动作按钮,并在点击事件中实现特定的逻辑处理,比如调用其他系统接口、发送消息等。 3. 高级查询和筛选:Workbench平台的默认查询功能可能无法满足复杂的查询需求。通过JavaScript二次开发,可以实现更灵活的查询和筛选功能,比如添加条件组合、动态生成查询语句等。 4. 数据处理和计算:有时需要对Workbench平台上的数据进行进一步处理和计算。通过JavaScript的二次开发,可以编写脚本来实现这些需求,比如对数据进行加减乘除、日期计算等。 总而言之,Workbench JavaScript二次开发可以帮助我们对平台进行定制,以满足特定业务需求。在开发过程中,我们需要熟悉Workbench平台的API和事件机制,并结合JavaScript的语法和功能进行开发

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值