2011-10-05 16 views
0

是有不使用的XTemplate申請數據「常規」字段和子項的方法嗎?數據而不XTemplate?

我的代碼如下所示:

var panel = new Ext.Panel({ 
    data: myDataBlock 
    defaults: { 
     data: myDataBlock 
    } 
    title: 'Name: {name}' 
    items: [{ 
     xtype: 'panel', 
     title: 'more: {moreData}' 
    }] 
}); 

什麼會被要求有與數據表「myDataBlock」適當substitudes?

乾杯

回答

0

你是什麼意思的「常規」字段?

面板的data屬性是要渲染的初始數據,並且它被使用模板呈現。您可以爲渲染,如果你想指定自定義模板,但讓ExtJS的知道如何使你的內容有兩種方式使用模板。

看的源代碼Component

if (this.data) { 
    this.tpl[this.tplWriteMode](contentTarget, this.data); 
    delete this.data; 
} 

數據:所述初始數據集應用到TPL更新組件的 內容區域。

+0

我猜你沒有看着我的例子。每個面板例如有一個「標題」屬性,我也想引用該數據,而不使用額外的模板。 – pagid

0

如果我理解正確的話,你想通過一個數據塊動態創建面板設置的屬性,如title等...

如果是的話,我的建議是寫一個擴展Ext.Panel自己的面板類並在組件啓動之前做好這些事情。

樣品:

//Define your own panel class 
MyPanel = Ext.extend(Ext.Panel, { 
    width: 300, 
    height: 150, 
    initComponent: function(){ 
    if(this.data){ 
     Ext.apply(this,{ 
      title: 'Name: '+ this.data.title, 
      items: [ 
       { 
       xtype: 'panel', 
       html: 'more: '+ this.data.moreData 
       } 
      ] 
     }); 
    } 
    MyPanel.superclass.initComponent.call(this); 
    } 
}); 

//Use the customized panel 
var p = new MyPanel({ 
    data: {title:'my title', moreData: 'other data'}, 
    renderTo: Ext.getBody() 
}); 

順便說,模板僅用於呈現的面板的在一個普通的方式的內容。在你的情況下,使用Template是不合適的,因爲它與配置屬性或面板的項目無關。