我没有重写大量代码,而是试图将全局功能纳入我的工作中,但我却无法使其工作。
解释: -
以下代码解释了这一点,当用户点击菜单项时,需要在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
});
提前感谢您的帮助。
答案 0 :(得分:0)
当你做
时你正在调用该函数click: createTab();
我想你想要它分配一个功能点击:
click: function(){
createTab("DemoApp.view.view1");
}