EXTJS 怎样点击menu菜单,中间显示panel

小黑快跑 2016-04-01 10:58:29
这是目录menu

Ext.define('Sys.view.mail.Menu', {
extend: 'Ext.menu.Menu',
alias: 'widget.emailmenu',
title: 'Email',
iconCls: 'x-fa fa-inbox',
floating: false,
items: [
{
iconCls: 'x-fa fa-edit',
text: 'Compose'
,action:'myto'
// ,id:'sendMail'
},
{

iconCls: 'x-fa fa-inbox',
text: 'Inbox'
}
]
});


在Controller里

refs: [
{ref: 'emailMenu', selector: 'emailmenu'}
]

init: function() {
this.control({
,'emailmenu menuitem[action=myto]':{
click:this.activeTab
}
});
}
activeTab: function(){}


Viewport

Ext.define('Sys.view.Viewport', {
extend: 'Ext.container.Viewport',
layout: 'border',
items: [{
region: 'north',
baseCls: 'app-header',
html: 'Web邮件系统'
},{
region: 'center',
id:'centerTabPanel',
xtype:'tabpanel'
}, {
region: 'west',
split:true,
width:'15%',
collapsible: true,
layout:'accordion',
items:[{
xtype:'emailmenu'
// xtype:'mail_select_panel'
}]

}]
});


activeTab: function(){}这个方法应该怎么写
...全文
159 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
小黑快跑 2016-04-01
  • 打赏
  • 举报
回复
我是一个新鲜的菜鸟,求回复
小黑快跑 2016-04-01
  • 打赏
  • 举报
回复
终于找人问到答案了

改成这样
  ,'emailmenu menuitem':{
            	click:this.dynamicLoadingController
            }


	,dynamicLoadingController: function(item) {
			var self = this;
			var record = item.name;
			if(record){
				var controllerName = record.replace(/(\w)/,function(v){return v.toUpperCase()})+'Controller';//User+Controller   Log+Controller
				var controllerPath = 'Sys.controller.'+controllerName;
				if(!Ext.ClassManager.isCreated(controllerPath)){
					//还没加载,现在加载控制器
					Ext.require(controllerPath, function () {//加载完成后执行回调函数
             			this.getController(controllerPath);//ExtJS 4.2后自动初始化
						this.activeTab(item);
						
					}, self);
				}else{
					this.activeTab(item);
				}
	   	   }
	 },
	activeTab: function(item) {	
   	   	var record = item.name;
   	   	var modelId = record+"_model_panel";
   	   	var tabs = Ext.getCmp('centerTabPanel'); //Viewport-> id:'centerTabPanel'
   	   	var tab = tabs.items.getByKey(modelId); 
		if (!tab) {
		
           	 tab = tabs.add({
            	xtype: modelId,
            	itemId: modelId,
            	closable:true
           
             });
	      }else{
	      tabs.setActiveTab(tab);
	     
	  }
    }

动态加载控制器和tabPanel,最重要是 拼 控制器和Panel 的名字

87,907

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧