首页 > 代码库 > 跟我一起学extjs5(31--加入模块和菜单定义[4前台通过ajax来调用数据与展示])
跟我一起学extjs5(31--加入模块和菜单定义[4前台通过ajax来调用数据与展示])
跟我一起学extjs5(31--加入模块和菜单定义[4前台通过ajax来调用数据与展示])
上一节已经把到现在为止的后台做好了,启动tomcat ,在浏览器中打入网址:http://localhost:8888/app/applicationinfo.do,就可以取得系统参数值。下面看一下在chrome调试器中的结果。
到此为止,后台暂告一段落,又要开始对前台的extjs的程序进行修改了。
首先要修改的是MainModel.js,在此js文件中加入构造函数:
constructor : function() { Ext.log('MainModel constructor'); var me = this; // 这一句是关键,如果没有的话,this还没有初始化完成,下面的Ext.apply(me.data,....)这句就会出错 this.callParent(arguments); // 同步调用取得系统参数 Ext.Ajax.request({ url : 'applicationinfo.do', async : false, // 同步 success : function(response) { var text = response.responseText; // 将字段串转换成本地变量 var applicationInfo = Ext.decode(text, true); // 把从后台传过来的参数加入到data中去 Ext.apply(me.data, applicationInfo); } }); }
由于后台传送过来的data中的属性名称和原来写在data里的属性不一致,因此要修改Top.js和Bottom.js。(数据库的表的字段我都是用tf_开头,只是为了区分这是一个数据库里的字段而己。在看前台的代码时也能知道,所有tf_开头的变量都是从数库里读出来的)。
Top.js更改为如下:
/** * 系统主页的顶部区域,主要放置系统名称,菜单,和一些快捷按钮 */ Ext.define('app.view.main.region.Top', { extend : 'Ext.toolbar.Toolbar', alias : 'widget.maintop', // 定义了这个组件的xtype类型为maintop uses : ['app.ux.ButtonTransparent', 'app.view.main.menu.ButtonMainMenu', 'app.view.main.menu.SettingMenu'], defaults : { xtype : 'buttontransparent' }, style : 'background-color : #cde6c7', height : 40, items : [{ xtype : 'image', bind : { // 数据绑定到MainModel中data的system.iconUrl hidden : '{!systemInfo.tf_iconUrl}', // 如果system.iconUrl未设置,则此image不显示 src : '{systemInfo.tf_iconUrl}' // 根据system.iconUrl的设置来加载图片 } }, { xtype : 'label', bind : { text : '{systemInfo.tf_systemName}' }, style : 'font-size:20px;color:blue;' }, { xtype : 'label', style : 'color:grey;', bind : { text : '({systemInfo.tf_systemVersion})' } }, '->', { xtype : 'buttonmainmenu', hidden : true, bind : { hidden : '{!isButtonMenu}' } }, ' ', ' ', { text : '首页', glyph : 0xf015, handler : 'onHomePageButtonClick' }, { xtype : 'settingmenu' }, { text : '帮助', glyph : 0xf059 }, { text : '关于', glyph : 0xf06a }, '->', '->', { text : '搜索', glyph : 0xf002 }, { text : '注销', glyph : 0xf011 }, { glyph : 0xf102, handler : 'hiddenTopBottom', tooltip : '隐藏顶部和底部区域', disableMouseOver : true }] });
Button.js更改为如下:
/** * 系统主页的底部区域,主要放置用户单位信息,服务单位和服务人员信息 */ Ext.define('app.view.main.region.Bottom', { extend : 'Ext.toolbar.Toolbar', alias : 'widget.mainbottom', uses : ['app.ux.ButtonTransparent'], defaults : { xtype : 'buttontransparent' }, style : 'background-color : #f6f5ec;', items : [{ bind : { text : '{userInfo.tf_userdwmc}' }, glyph : 0xf0f7 }, { bind : { text : '{userInfo.tf_departmentName}' } }, { bind : { text : '用户:{userInfo.tf_userName}' }, glyph : 0xf007 }, '->', { bind : { text : '{serviceInfo.tf_serviceDepartment}' }, glyph : 0xf059 }, { bind : { text : '{serviceInfo.tf_serviceMen}' } }, { bind : { text : '{serviceInfo.tf_serviceTelnumber}' }, glyph : 0xf095 }, { bind : { hidden : '{!serviceInfo.tf_serviceEmail}', // 绑定值前面加!表示取反,如果有email则不隐藏,如果email未设置,则隐藏 text : '{serviceInfo.tf_serviceEmail}' }, glyph : 0xf003, handler : function(button) { // 发送邮件 var vm = button.up('app-main').getViewModel(); var link = "mailto:" + vm.get('serviceInfo.tf_serviceEmail') + "?subject=" + vm.get('userInfo.tf_userdwmc') + vm.get('userInfo.tf_userName') + " 关于 " + vm.get('systemInfo.tf_systemName') + " 的咨询"; window.location.href = http://www.mamicode.com/link;>
以过以上修改,就可以完成系统的top 和 bottom中一些信息的更新的。启动tomcat ,在浏览器中打入:http://localhost:8888/app/,会生成如下界面:
其中的系统名称,用户单位及操作员,服务单位及联系方式都是从后台取过来的。另外单击“电子邮件”那个链接,可以直接转到发送邮件的程序。
下一节中把菜单更新一下,发布源代码。
跟我一起学extjs5(31--加入模块和菜单定义[4前台通过ajax来调用数据与展示])
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。