2012-02-28 31 views
0

我是extjs的新手,在爲數據提供模板時遇到問題。EXTJS 4 - 爲XTemplate提供數據

var header = new Ext.Template("<div><b>{name}</b></div>"); 
header.compile(); 

var description = new Ext.Template("<div><b>{description}</b></div>"); 
description.compile(); 

Ext.define('ActivityWindow', { 
    extend : 'Ext.window.Window', 
    id : 'detActWin', 
    layout : 'border', 
    config :{ 
     resultRecord : null 
    }, 
    defaults :{ 
     xtype : 'panel' 
    }, 
    constructor: function (args){ 
     this.initConfig(args); 
     this.callParent(); 
    }, 
    items : [ 
      { 
       tpl : header, 
       itemId : 'activityHeader', 
       region : 'north', 
       data : this.resultRecord 
      }, 
      { 
       html : 'partecipantsList', 
       itemId : 'activityPartecipants', 
       region : 'east' 
      }, 
      { 
       html : 'description', 
       region : 'center' 
      }    
    ]  

}); 

    var winDetAct = Ext.create(ActivityWindow, { resultRecord: entry}); 
    alert(winDetAct.getResultRecord().get('name')); //it shows the field name 
    winDetAct.show(); 

其中resultRecord = {名稱: '的TopText',說明: 'rightText'}

我想通過這resultRecord到Window類和具有使用該數據的項目。窗口類中的resultRecord設置良好,因爲警報顯示正確的數據。

,但此行被忽略一樣,

data : this.resultRecord 

問題:

1 - 我怎樣才能養活模板與來自可變resultRecord的數據窗口的第1項?

2 - 有沒有適當的方法來做到這一點?

非常感謝你, 加布裏埃爾

回答

0

你所看到的問題是,this.resultRecord是不確定的,因爲「這」方面尚未提供的組件添加到您的配置。你必須調用initComponent,並且你可以擁有this.Myproperty引用。她是你的代碼修改爲正常工作: http://jsfiddle.net/dbrin/HTAWP/1/

+0

非常感謝你DmitryB,不幸的是,當我點擊你的鏈接,我得到一個空白的項目,但無論如何感謝,我會咀嚼它。 – user1237981 2012-02-29 09:13:40

+1

對此鏈接感到抱歉:試試這個:http://jsfiddle.net/dbrin/HTAWP/只是不要在IE中運行它 - 愚蠢的東西沒有控制檯。 – dbrin 2012-02-29 17:26:08

+0

感謝DmitryB,它工作得很好,我得到了這個概念。 – user1237981 2012-03-01 09:16:56