Javascript 使用Ext js动态加载项目;装载机;

Javascript 使用Ext js动态加载项目;装载机;,javascript,extjs,Javascript,Extjs,我是ExtJS的新手,一个客户想让我在一些网站上使用它,所以,我用它压碎了我的头,我用的是ExtJS4.0.7和他们所谓的MVC。我来了 我正在创建一个带有“卡片布局”的“面板”,我希望动态加载项目,所以我使用了一个“加载器”。这是我正在做的一个例子 //the panel { xtype:'panel', id: 'options-panel', title: 'Options', region:'north', layout:"card", activeItem:0,

我是ExtJS的新手,一个客户想让我在一些网站上使用它,所以,我用它压碎了我的头,我用的是ExtJS4.0.7和他们所谓的MVC。我来了

我正在创建一个带有“卡片布局”的“面板”,我希望动态加载项目,所以我使用了一个“加载器”。这是我正在做的一个例子

//the panel
{
  xtype:'panel',
  id: 'options-panel',
  title: 'Options',
  region:'north',
  layout:"card",
  activeItem:0,
  height: 200,
  autoScroll: true,
  items:{
    loader:{
      autoLoad : true,
      url: '/staticdata/menu-toolbar-data.json',
      renderer: "component"
    } 
  }
}

//example data file menu-toolbar-data.json
[
  {
    xtype:'toolbar',
    vertical: true,
    height: 173,
    id:"button1-toolbar",
    layout: {
      type: 'vbox',
      align : 'stretch',
      pack  : 'start'
    },
    items: [
      {
        text: 'Gestion Button1',
        enableToggle: true
      },'-',
      {
        text: 'Selection Button1',
        enableToggle: true
      }
    ]
  },
  {
    xtype:'toolbar',
    vertical: true,
    height: 173,
    id:"button2-toolbar",
    layout: {
      type: 'vbox',
      align : 'stretch',
      pack  : 'start'
    },
    items: [
      {
        text: 'G Button2',
        enableToggle: true
      },'-',{
        text: 'S Button2',
        enableToggle: true
      }
    ]
  } 
]  
到目前为止还不错,我可以看到第一个带有按钮的工具栏。这是可以的,但是当我尝试激活第二个工具栏时,我得到了一个错误。我用这个:

Ext.getCmp('options-panel').layout.setActiveItem(1);  
使用firebug,我可以在控制台中看到:

TypeError: component is undefined
http://www.learningext.com.localhost/extjs/src/ComponentManager.js?_dc=1330059491008
Line 55  
有趣的是,如果我从.json文件复制代码并将其粘贴到“面板”的“项”中,这意味着不使用“加载程序”,一切都正常!如果我保留“加载程序”,但更改面板的布局,我可以看到2个工具栏,那么我在这里遗漏了什么?是装载机没有正常工作,还是我做错了什么?希望你能帮我


谢谢

Ext.Loader仅用于加载完整类。如果加载只是为了将JSON块作为容器的子项加载,那么可以使用ComponentLoader类

这里有几个例子:


最后一个可能就是你想要达到的目标。

链接已经失效