I am new to extjs and I am having trouble when feeding a template with data.
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();
where resultRecord = {name : ‘topText’, description: ‘rightText’}
I would like to pass this resultRecord to the Window class and have the items using this data. the resultRecord in the window class is well set, because the alert shows the correct data.
but this line is like ignored,
data : this.resultRecord
questions:
1 – How can I feed the template in item 1 of the window with the data from the variable resultRecord ?
2 – Is there a proper way to do this?
thank you very much,
Gabriel
The issue you are seeing is that this.resultRecord is undefined because “this” context is not yet available as the component to your config. You have to call initComponent and inside that you can have this.Myproperty reference. Her is your code modified to work correctly:
http://jsfiddle.net/dbrin/HTAWP/1/