Dorado 7 : 9.3.2 控件标签优化代码

在前一节步骤5的开发中,我们发现其实给MenuItem和ToolBarButton绑定onClick事件的js代码其实大同小异。但是重复的代码带来的后果就是代码冗余,可读性下降,我们优化一下代码。

首先将前一节步骤5绑定的onClick事件代码全部删除,接下来分别设置相关控件的属性:

控件名tagsuserData
【欢迎】MenuItemmenuitemcom.bstek.dorado.sample.standardlesson.junior.system.Welcome.d
【系统信息】MenuItemmenuitemcom.bstek.dorado.sample.standardlesson.junior.system.SystemInfo.d
【帮助】MenuItemmenuitemhttp://wiki.bsdn.org
【企业联系方式】MenuItemmenuitemcom.bstek.dorado.sample.standardlesson.junior.contacts.CompanyInfo.d
【所有联系人】MenuItemmenuitemcom.bstek.dorado.sample.standardlesson.junior.contacts.AllContacts.d
【企业基础数据维护】MenuItemmenuitemcom.bstek.dorado.sample.standardlesson.junior.base.CompanyManage.d
【员工基础数据维护】MenuItemmenuitemcom.bstek.dorado.sample.standardlesson.junior.base.EmployeeManage.d
【帮助】ToolBarButtonmenuitemhttp://wiki.bsdn.org

鼠标选中【ToolBar】控件,切换到Client Events事件列表,在onReady事件编辑区中输入如下代码:

view.get("^menuitem").addListener("onClick", function(self, arg, iframeMain){
    iframeMain.set("path",self.get("userData"));
});

观察一下可以发现优化后的代码仅仅用2行代码就完成了前一节多个事件绑定代码的工作,我们使用了控件标签和userData属性。

info

控件标签是一种控件的自定义分类功能,设定一组控件的tags属性,通过view.get("^menuitem");代码获得所有的控件,返回结果是一个数组对象。对于控件标签的详细描述请参考:控件标签

userData属性是用户自定义数据,我们在这里将userData属性设置为页面链接。

通过控件标签获取所有tags为menuitem的控件集合,通过addListener给控件集合添加onClick事件监听器,在点击菜单或者快捷按钮后,将控件中userData属性存放的页面链接赋值到iframeMain的path属性中,使之显示相关页面。