【发布时间】:2015-01-27 01:41:47
【问题描述】:
我没有重写大量代码,而是尝试将全局函数合并到我的工作中,但我无法让它工作。
说明:-
这就是以下代码的解释,当用户单击菜单项时,需要在 tabpanel xtype 组件内创建一个新选项卡。所以每次我创建一个新菜单时,只需再复制一次单击函数定义(显然在 Ext.create 函数中使用了它各自的视图名称)。
程序代码:-
menu:[
{
text:'Menu1',
listeners:{
click: function(c){
var nodeText = c.text,
tabs = Ext.getCmp('app-tab'),
tabBar = tabs.getTabBar(),
tabIndex;
for(var i = 0; i < tabBar.items.length; i++) {
if (tabBar.items.get(i).getText() === nodeText) {
tabIndex = i;
}
}
if (Ext.isEmpty(tabIndex)) {
tabs.add(Ext.create('DemoApp.view.view1',{title:c.text,overflowY: 'scroll',closable:true}));
tabIndex = tabBar.items.length - 1;
}
tabs.setActiveTab(tabIndex);
}
}
},{
text:'Menu2',
listeners:{
click: function(c){
var nodeText = c.text,
tabs = Ext.getCmp('app-tab'),
tabBar = tabs.getTabBar(),
tabIndex;
for(var i = 0; i < tabBar.items.length; i++) {
if (tabBar.items.get(i).getText() === nodeText) {
tabIndex = i;
}
}
if (Ext.isEmpty(tabIndex)) {
tabs.add(Ext.create('DemoApp.view.view2',{title:c.text,overflowY: 'scroll',closable:true}));
tabIndex = tabBar.items.length - 1 ;
}
tabs.setActiveTab(tabIndex);
}
}
}]
我只想在点击事件发生时调用类似下面的内容:
click : createTab("DemoApp.view.view1")
click : createTab("DemoApp.view.view2")
//Global function
view.createTab(function(view){
// Code
});
提前感谢您的帮助。
【问题讨论】:
标签: javascript extjs