2012-01-01 48 views
0

我用ExtDesigner設計了一個窗口,生成的JSON是這樣的:如何使用生成的json構建extjs窗口?

{ 
    xtype: 'window', 
    height: 477, 
    width: 666, 
    layout: 'fit', 
    title: '添加廣告位', 
    items: [ 
     { 
      xtype: 'form', 
      bodyStyle: 'padding: 10px', 
      title: '', 
      items: [ 
       { 
        xtype: 'textfield',  
        anchor: '100%', 
        fieldLabel: '名稱' 
       }, 
       { 
        xtype: 'radiogroup', 
        anchor: '100%', 
        fieldLabel: '廣告類型', 
        items: [ 
         { 
          xtype: 'radio', 
          boxLabel: '文字' 
         }, 
         { 
          xtype: 'radio', 
          boxLabel: '圖片' 
         } 
        ] 
       } 
      ] 
     } 
    ] 
} 

我複製它,但我不知道如何使用它。我找不到將它轉換爲extjs組件的方法。怎麼做?

PS:我使用extjs 2.2

回答

2

有創建一個ExtJS組件兩種方式。

  1. 明確創建組件,例如:new Ext.Window({...});。這樣你就可以馬上得到組件,這意味着事件監聽器,額外的方法等等。

  2. 第二種方式是延遲加載,即通過在純javascript對象中指定組件的xtype。這正是你所擁有的。

爲了使第二工作方式,你需要在一個ExtJS容器您的xtype的JavaScript對象,容器會知道如何在適當的時候對其進行渲染。

例如:

Ext.onReady(function(){ 
    new Ext.Viewport({ 
     layout : 'fit', 
     items : [{ 
      xtype: 'window', 
      height: 477, 
      width: 666, 
      layout: 'fit', 
      title: '添加廣告位', 
      items: [...] 
     }] 
    }); 
}); 
+0

所以我還需要一個容器來容納JSON。如果有一種方法可以將其轉換爲Ext組件,將會是完美的。 – Freewind 2012-01-01 16:17:34

+0

hmmm,試試Ext.ComponentMgr.create({xtype:window,...})。 – Chao 2012-01-01 16:37:33

0

認爲您正在尋找類似的東西。這會彈出窗口。

var win = new Ext.Window({ 
width:400 
,id:'autoload-win' 
,height:300 
,autoScroll:true 
}); 
win.show();