`
pjwqq
  • 浏览: 81318 次
社区版块
存档分类
最新评论

Extjs4.2 MVC 左菜单动态加载功能

    博客分类:
  • js
阅读更多
说实话Ext这个东西还是比较不爽,那个官方的api也太简单了,很多地方都寥寥几句话,搞的像我这样的初学者很泄气,不过做事最好还是有始有终,有点心得,记录一下。
所谓的常见的应用界面就是登录完毕之后,左边一个菜单面板,中间一个TabPanel来放具体功能
后台传回数据后,点左边菜单应该可以动态加载功能
1.登录完毕后,加载左菜单,这个没啥好说的,数据:
{
    "success": true,
    "children": [
        { "functionId": 1, "functionMappingName": "userinfopanel","functionDes":"用户管理","iconCls" :"feed-icon","leaf": true },
        { "functionId": 2, "functionMappingName": "roleinfopanel","functionDes":"角色管理","iconCls" :"feed-icon","leaf": true }
    ]
}

functionId : 功能id
functionDes : 功能描述
functionMappingName : 其实就是定义在view中的 xtype,方便加载

2.按部就班定义model和store
model:
Ext.define('PJ.model.FunctionModel',{
	extend : 'Ext.data.Model',
	fields : ['functionId','functionMappingName','functionDes']
});

store:
Ext.define('PJ.store.FunctionStore',{
	extend : 'Ext.data.TreeStore',
	model : 'PJ.model.FunctionModel',
	autoLoad : true,
	root : {
    	functionDes : '系统功能',
    	expanded : false
    },
	proxy : {
		type : 'ajax',
		url : 'json/Function.json',	
        reader: {
        	type: 'json',
        	successProperty: 'success'
        }
	}	
});


3.点击左菜单,加载对应的功能,这里是UserInfoPanel,xtype就是functionMappingName中内容。 
controller:
Ext.define('PJ.controller.MainController',{
	extend : 'Ext.app.Controller',
	views : ['MainWin','LeftWin','LeftWinFunctionTree','UserInfoPanel'],
	stores: ['FunctionStore','UserInfo'],
	models: ['FunctionModel','UserInfo'],
	
	init : function(){
		this.control({
			'leftWinFunctionTree':{
				itemclick : this.loadFunction
			}
		});
	},
	
	loadFunction : function(view,rec,item,index,eventObj){
		var mainTab = Ext.getCmp('mainView');
		//如果已有该id的tab,就激活它
		//否则创建
		var tab = mainTab.queryById('functionTab'+rec.get('functionId'));
		if(tab){
			mainTab.setActiveTab(tab);
		}else{
			tab = mainTab.add({   
        		id: 'functionTab'+rec.get('functionId'),   
        		title: rec.get('functionDes'),    
        		closable: true,
        		xtype : rec.get('functionMappingName') 
    		}).show();
		};
	}
});

xtype其实就是系统帮忙初始化了一个实例 ,所以可以直接引用,还是很方便的吧,不过就是必须在controller中声明对应的view,store,model等等一串,这个地方是不是也可以动态声明呢?

有图有真相:

  • 大小: 14.4 KB
  • app.rar (6.9 KB)
  • 下载次数: 184
1
0
分享到:
评论
4 楼 pjwqq 2014-03-18  
zhengeili 写道
楼主有完整代码?'MainWin','LeftWin','LeftWinFunctionTree','UserInfoPanel' 这几个没有啊

代码附上,有段时间没搞这个,后台兄弟就脑补吧
3 楼 zhengeili 2014-03-17  
楼主有完整代码?'MainWin','LeftWin','LeftWinFunctionTree','UserInfoPanel' 这几个没有啊
2 楼 pjwqq 2013-12-18  
hellostory 写道
扁平化的设计好难看啊!

确实不咋滴
1 楼 hellostory 2013-12-18  
扁平化的设计好难看啊!

相关推荐

    extjs4.2 desktop mvc

    "platform"这个文件名可能是EXTJS 4.2 Desktop MVC中的一个核心模块,通常EXTJS会将不同功能划分为不同的模块或平台,便于按需加载和优化性能。在EXTJS中,"platform"可能包含了针对不同浏览器或设备的特定实现,...

    extjs 4.2 开发 参考书

    这本书籍《ExtJS 4.2 开发参考书》应该是对这个版本的ExtJS进行深入探讨的指南,旨在帮助开发者理解和应用其强大的功能。 在ExtJS 4.2中,主要的知识点包括: 1. **架构和核心概念**:理解MVC(Model-View-...

    extjs4.2+java经典

    ExtJS 4.2是一个成熟且功能丰富的前端框架,用于构建数据密集型的单页应用程序(SPA)。它提供了大量的UI组件,如表格、图表、表单、树形菜单等,以及一个强大的数据包管理器,可以方便地与服务器通信。此外,ExtJS...

    最新JAVA通用后台管理系统(ExtJS 4.2+Hibernate 4.1.7+Spring MVC 3.2.8)MyEclipse版本

    1、采用Spring MVC的静态加载缓存功能,在首页将Javascript文件、CSS文件和图片等静态资源文件加载进来放进内存,极大提高ExtJS的加载速度。 2、三种皮肤主题:经典、灰色和海王星,支持多浏览器和多分辨率。 3、...

    extjs4.2 resources

    - MVC(Model-View-Controller)架构的增强:ExtJS 4.2对MVC模式进行了优化,使得大型应用的组织和管理更加有序。 - 动态加载:4.2版本支持按需加载类和资源,减少了初始页面加载的时间,提高了用户体验。 - 数据包...

    最新JAVA通用后台管理系统(ExtJS 4.2+Hibernate 4.1.7+Spring MVC 3.2.8)Eclipse版本

    1、采用Spring MVC的静态加载缓存功能,在首页将Javascript文件、CSS文件和图片等静态资源文件加载进来放进内存,极大提高ExtJS的加载速度。 2、三种皮肤主题:经典、灰色和海王星,支持多浏览器和多分辨率。 3、...

    通用后台管理系统(ExtJS 4.2+Hibernate 4.1.7+Spring MVC 3.2.8).pdf

    1. 静态加载缓存功能:采用 Spring MVC 的静态加载缓存功能,在首页将 Javascript 文件、CSS 文件和图片等静态资源文件加载进来放进内存,极大提高 ExtJS 的加载速度。 2. 三种皮肤主题:经典、灰色和海王星,支持...

    可二次开发Extjs4.0通用后台管理系统源码完整大型项目ExtJS 4.2+Hibernate 4.1.7+SpringMVC

    1采用Spring MVC的静态加载缓存功能,在首页将Javascript文件、CSS文件和图片等静态资源文件加载进来放进内存,极大提高ExtJS的加载速度。 2三种皮肤主题:经典、灰色和海王星,支持多浏览器和多分辨率。 3分别封装...

    通用后台管理系统(ExtJS 4.2+Hibernate 4.1.7+Spring MVC 3.2.8).docx

    《通用后台管理系统——基于ExtJS 4.2+Hibernate 4.1.7+Spring MVC 3.2.8的高效框架》 本通用后台管理系统是一款高效、稳定且灵活的开发框架,适用于构建OA、网站、电子政务、ERP、CRM、APP后台等多种B/S架构的应用...

    Extjs完整大型项目.rar

    1、采用Spring MVC的静态加载缓存功能,在首页将Javascript文件、CSS文件和图片等静态资源文件加载进来放进内存,极大提高ExtJS的加载速度。 2、三种皮肤主题:经典、灰色和海王星,支持多浏览器和多分辨率。 3...

    Extjs4.0通用后台管理系统源码完整大型项目可二次开发含源码,数据库,文档,采用开源的互动地图Javascript库Leaf

    1、采用Spring MVC的静态加载缓存功能,在首页将Javascript文件、CSS文件和图片等静态资源文件加载进来放进内存,极大提高ExtJS的加载速度。 2、三种皮肤主题:经典、灰色和海王星,支持多浏览器和多分辨率。 3、...

    基于ExtJS和SSH的Web应用架构的研究与实现

    ExtJS拥有丰富的UI组件和工具,能够轻松实现复杂的前端功能,如表格、树形菜单、窗口弹出框等,并支持高级的布局管理器,使得开发者能够快速搭建出美观且功能强大的用户界面。 ##### 3.2 ExtJS的优势 1. **提升...

    Ext Js权威指南(.zip.001

    7.1.5 为element对象提供加载功能:ext.elementloader / 295 7.1.6 为组件提供加载功能:ext.componentloader / 296 7.2 代理 / 299 7.2.1 代理概述 / 299 7.2.2 基本的代理:ext.data.proxy.proxy / 300 7.2.3...

Global site tag (gtag.js) - Google Analytics