`

extjs mvc动态加载controller

 
阅读更多

折腾了几天的extjs动态加载controller因为要换风格得扔了,存在这里供大家伙参考吧。

app.js

 

var application;

Ext.tip.QuickTipManager.init();

Ext.Loader.setConfig({
	disableCaching:true,
	enabled: true
});

application =new Ext.application({
	requires: [
		'Ext.window.MessageBox',
		'Ext.container.Viewport'
	],
	name: 'app',
	appFolder:'js/xxx/app',
	autoCreateViewport:false,
	controllers: [
		'frameController'
	],
	launch: function() {
		Ext.widget("main_viewport");
	}
});

function refresh4Session()
{
	Ext.Ajax.request({url: GLOBAL_ROOT_PATH+'/blank.jsp'});
    setTimeout(refresh4Session,5*60*1000);//五分钟
}
refresh4Session();

 

 

Ext.define('app.controller.frameController',{
		extend : 'Ext.app.Controller',
		alias : 'controller.frameController',
		views : ['Viewport'],
		refs:[
	        {ref:'tabpanel',selector:'main_viewport>tabpanel[id=tabpanel]'}
	    ],
		init : function(application) {
			var me = this;
			window.application=me.getApplication();
			me.control({
				'main_viewport>panel[region=west]':{
					render:function(obj){
						var treepanel=Ext.create('Ext.tree.Panel',{
                                title:'test',
                                autoHeight:true,
                                autoScroll: true,
                                split: true,
                                rootVisible:false,
                                lines:true,
                                store: Ext.create('Ext.data.TreeStore', {
						        	root: {
						        		expanded: true,
						        		children: [
						        		           {text: '菜单名称', page: 'xxxxInfo_List', controller_full_class_name:'app.controller.xxxxInfo',leaf: true},
						        		           {text: '菜单名称', page: 'xxxxLevel_List',controller_full_class_name:'app.controller.xxxxLevel',leaf: true}
						        		]
						        	}
                                }),
			 					listeners: {
						        	'itemclick': function(view, record){
						        		if (!Ext.ClassManager.isCreated(record.raw.controller_full_class_name)) {
			                                me.getApplication().getController(record.raw.controller_full_class_name);
			                            }
                                		if(record.isLeaf()){
							    			var id = 'tab-' + record.internalId;
							    			var center =  me.getTabpanel();//view.up('viewport').down('tabpanel');
							    			var tab = center.queryById(id);
							    			if(!tab){
							    				tab = center.add(Ext.widget(record.raw.page, {itemId: id, title: record.get('text'),closable : true}));
							    			}
							    			center.setActiveTab(tab);
							    		}
						        }
			 				}
						});
						obj.items.add(treepanel);
					}
				}
			});
		}
 		
 });

 

上面的代码中,实现动态加载controller的最核心的其实就是

						        		if (!Ext.ClassManager.isCreated(record.raw.controller_full_class_name)) {
			                                me.getApplication().getController(record.raw.controller_full_class_name);
			                            }

 

其他的就是mvc的正常的东西,比较简单了。

0
0
分享到:
评论

相关推荐

    Extjs 4.2.x MVC 动态加载 controller demo

    demo描述: 1. 页面主框架是左是一个tree,右边是一个tablepanel ...3. 点击左边的树的节点动态加载controller生成一个table 注:需要自己导入Extjs 4.2.x 的文件,该demo是用Extjs 4.2.1 写的

    EXTJS简单MVC实例

    只要将解压的文件直接放置到myeclipse的webroot下面,启动tomcat访问。简单的EXTJS mvc框架,设计 store,model,controller,view,window等等,同时展示了一些基本的点击显示、修改等等操作,需要的同学自行下载

    Extjs4.0MVC动态加载controler,完美破解Demo

    可以通过动态创建controller的方式,还能遵循mvc设计规范。这个例子完美破解,经过测试。 extjs4.0好像设计上是一个应用对应一个application,所以原先想通过动态加载多个application来实现上面的需求。但是那样会...

    EXTJS4 MVC+ASP.NET MVC3动态加载JS文件实例

    本例采用ASP.NET MVC3 +EXTJS4 MVC 框架,完美实现了EXTJS4动态加载JS文件,对ASP.NET MVC3及EXTJS4 MVC 各应用要点进行了应用。对于想采用ASP.NET MVC3 +EXTJS4 MVC 框架的学习者有很好的帮助,快速掌握MVC框架,本...

    Extjs4 MVC小实例

    Extjs4 MVC小实例根据The MVC Application Architecture做的

    Extjs4.0 mvc模式开发

    本工程采用ExtJs4.0 开发,采用mvc开发模式,分为controller view model store。

    ExtJS MVC 官方实例

    extjs的官方api中的例子

    extjs4 mvc extjs

    是用extjs mvc写的,controller里面会配置model store view,然后mode和store的关系,相信大家也很清楚了,store里面会用到model,当然也可以不用,和原来的extjs3.x是一样的,用field来表示,其实是换汤不换药而已...

    Extjs4.0+MVC模式+存动态加载

    Extjs4.0+MVC模式+存动态加载,动态加载面板,动态加载控制器,动态加载树叶子节点,后台servlet模拟json数据

    ExtJS MVC示例

    配合extjs4.2.0的MVC开发模式教程使用更好

    extJs4.2MVC示例

    严格按照MVC架构分的曾,可以运行的extJs4.2MVC示例,在myclipse加到一个项目里的的webroot文件夹下,运行index.html即可

    ExtJs 4 MVC 新机制测试源码奉献

    ExtJs 4 用了一段时间了,今天研究了下ExtJs4的MVC机制,感觉还挺好,建议大家尝试,所以就写了一个demo,帮助那些对ExtJs还不是很懂,或者想用ExtJs4却又不知道怎么做好的朋友。。。多余话不说了大家如果有什么不...

    ExtJS MVC入门级开发案例

    ExtJS MVC入门级开发案例 适用于初学者

    extjs4MVC实现

    ExtJS4.0MVC学习,适合初学者。

    activiti+spring mvc+maven+extjs mvc+mybatis一个简单的请假工作流

    前台完全基于 extjs mvc框架开发 想学习extjs mvc的可以看看 后台用了activiti工作流 写了一个简单的请假审批例子 想学习spring mvc的也可以下载看看

    extjs mvc简单示例

    NULL 博文链接:https://xiaolongheni.iteye.com/blog/1594739

    ExtJS的MVC模式

    ExtJS4.0.7的MVC模式。 欢迎大家下载。

    ExtJS6 MVC 精简示例

    最新版本,ExtJS6 MVC 精简示例!!!,一个可以参考的小例子!

    ExtJS 4 MVC

    MVC with ExtJS 4 prictiacal Ext JS 上的关于MVC的例子

Global site tag (gtag.js) - Google Analytics