2011-01-10 4 views
0

Im пытается вызвать следующий код: Ext.namespace ("menu");Ext JS scope issue

menu.menuItems = function(){ 
var menuItems= [{ 
      0 : new Ext.Panel({ 
       title: 'Ordering'}) 

от

 var a = menu.menuItems(); 
      var accordion = new Ext.Panel({ 
      title:'Options', 
      region:'west', 
      margins:'5 0 5 5', 
      split:true, 
      width: 210, 
      collapsible: true, 
      layout:'accordion', 
      items: [a] 
     }); 

Однако, как представляется, выходит за рамки? Тем не менее, поскольку я передаю кучу дополнительных панелей, я смущен, я уверен, что ext принимает панели?

ответ

1

Я изменил ваше меню. Код элемента: функция ничего не возвращала. Это также не создавало массив панелей. Он создавал массив объектов с панелями с пронумерованными клавишами.

Я изменил ваш код аккордеона: у вас был дополнительный массив, в котором вы добавили элементы меню в конфигурацию элементов аккордеона.

Ext.namespace("menu"); 
    menu.menuItems = function(){ 
    var menuItems= [ 
     new Ext.Panel({ 
     title: 'Ordering' 
     }) 
    ]; 

    return menuItems; 
    }; 

    var a = menu.menuItems(); 
    var accordion = new Ext.Panel({ 
    title:'Options', 
    region:'west', 
    margins:'5 0 5 5', 
    split:true, 
    width: 210, 
    collapsible: true, 
    layout:'accordion', 
    items: a 
    }); 

DEMO на JSBin: http://jsbin.com/oyata4/edit