0

在 Extjs 4.1 中,我试图设置一个活动选项卡。标签面板(和标签)的代码如下:

var mainmsg = {
    title: "In Box",
    id: "Main",
    items: [
       ...
    ]
};

var magtags = Ext.create('Ext.tab.Panel',{
width: '100%',
height: 440,
layout: 'fit',
items: [ mainmsg,<other panels> ]
});

我想在事件发生时(如按下另一个面板中的按钮)将“mainmsg”面板设置为活动状态(选中?)。我正在使用为 TabPanel magtags 记录的 setActivePanel() 方法执行此操作,如下所示:

someEvent(params) {
    magtags.setActiveTab(mainmsg);
    ... do other stuff...
}

但是当我调用 setActiveTab() 时,我在 Firebug 上收到以下错误:

时间戳:2012 年 12 月 10 日下午 3:59:25

错误:TypeError:comp.getItemId 不是函数

我在 ExtJS 中发现错误了吗?或者有什么方法可以防止这个似乎是图书馆内部的错误?

有人请指教...

4

1 回答 1

1

因为 mainmsg 只是一个对象的配置,当它被传递给项目配置时,它被创建为一个实际的组件,但 mainmsg 引用仍然只是一个配置。setActiveTab 假设您正在传递它:

  1. 组件的id
  2. 组件的索引
  3. 组件实例

其他几点:

  • 100% 的宽度是多余的,不支持
  • 选项卡面板上的布局“适合”是多余的,它会自动使用卡片布局
  • 您可能过度嵌套了选项卡项,因为选项卡有标题且没有布局,然后是子项,这通常意味着子项应该是选项卡,而不是嵌套在其他任何内容中。
于 2012-12-10T21:42:14.463 回答