EXTJS 4 - 为XTemplate提供数据

时间:2012-02-28 13:48:38

标签: extjs4

我是extjs的新手,在使用数据提供模板时遇到了麻烦。

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 = {name:'topText',description:'rightText'}

我想将此resultRecord传递给Window类,并使用此数据获取项目。窗口类中的resultRecord设置得很好,因为警报显示正确的数据。

但这条线就像被忽略一样,

    data    : this.resultRecord

的问题:

1 - 如何使用变量resultRecord中的数据来提供窗口第1项中的模板?

2 - 有没有正确的方法来做到这一点?

非常感谢你, 加布里埃尔

1 个答案:

答案 0 :(得分:0)

您看到的问题是this.resultRecord未定义,因为“this”上下文尚未作为配置的组件提供。你必须调用initComponent并在里面你可以有this.Myproperty引用。她的代码被修改为正常工作: http://jsfiddle.net/dbrin/HTAWP/1/