2011-01-10 8 views
0

다음 코드를 호출하려고합니다. Ext.namespace ("menu"); 그러나 Ext JS 범위 문제

 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] 
     }); 

에서

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

는이 범위를 벗어난 것 같다? 그러나 나는 여러 개의 확장 패널을 전달하기 때문에, 나는 혼란 스럽다. 확실히 ext가 패널을 받아 들인다.

답변

1

menuItems 코드가 변경되었습니다. 함수가 아무 것도 반환하지 않았습니다. 또한 패널 배열을 실제로 만들지도 않았습니다. 그것은 번호가 매겨진 키에 패널이있는 객체의 배열을 생성합니다.

아코디언 코드를 변경했습니다. 아코디언의 항목 구성에 menuItem을 추가 한 위치에 중첩 된 추가 배열이 있습니다. JSBin에서

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 : http://jsbin.com/oyata4/edit