在前一节步骤5的开发中,我们发现其实给MenuItem和ToolBarButton绑定onClick事件的js代码其实大同小异。但是重复的代码带来的后果就是代码冗余,可读性下降,我们优化一下代码。
首先将前一节步骤5绑定的onClick事件代码全部删除,接下来分别设置相关控件的属性:
控件名 | tags | userData |
---|---|---|
【欢迎】MenuItem | menuitem | com.bstek.dorado.sample.standardlesson.junior.system.Welcome.d |
【系统信息】MenuItem | menuitem | com.bstek.dorado.sample.standardlesson.junior.system.SystemInfo.d |
【帮助】MenuItem | menuitem | http://wiki.bsdn.org |
【企业联系方式】MenuItem | menuitem | com.bstek.dorado.sample.standardlesson.junior.contacts.CompanyInfo.d |
【所有联系人】MenuItem | menuitem | com.bstek.dorado.sample.standardlesson.junior.contacts.AllContacts.d |
【企业基础数据维护】MenuItem | menuitem | com.bstek.dorado.sample.standardlesson.junior.base.CompanyManage.d |
【员工基础数据维护】MenuItem | menuitem | com.bstek.dorado.sample.standardlesson.junior.base.EmployeeManage.d |
【帮助】ToolBarButton | menuitem | http://wiki.bsdn.org |
鼠标选中【ToolBar】控件,切换到Client Events事件列表,在onReady事件编辑区中输入如下代码:
view.get("^menuitem").addListener("onClick", function(self, arg, iframeMain){ iframeMain.set("path",self.get("userData")); });
观察一下可以发现优化后的代码仅仅用2行代码就完成了前一节多个事件绑定代码的工作,我们使用了控件标签和userData属性。
userData属性是用户自定义数据,我们在这里将userData属性设置为页面链接。
通过控件标签获取所有tags为menuitem的控件集合,通过addListener给控件集合添加onClick事件监听器,在点击菜单或者快捷按钮后,将控件中userData属性存放的页面链接赋值到iframeMain的path属性中,使之显示相关页面。