有没有办法在不使用XTemplate的情况下将数据应用于“常规”字段和子项?
我的代码如下:
var panel = new Ext.Panel({
data: myDataBlock
defaults: {
data: myDataBlock
}
title: 'Name: {name}'
items: [{
xtype: 'panel',
title: 'more: {moreData}'
}]
});
使用数据格式“myDataBlock”获得适当的偏好需要什么?
干杯
答案 0 :(得分:0)
“常规”字段是什么意思?
Panel的data
属性是您想要渲染的初始数据,并使用模板进行渲染。如果您愿意,可以指定自定义模板进行渲染,但无论哪种方式,都必须使用模板,以便ExtJS知道如何渲染您的内容。
查看Component
的源代码:
if (this.data) {
this.tpl[this.tplWriteMode](contentTarget, this.data);
delete this.data;
}
数据:应用于tpl更新的初始数据集 组件的内容区域。
答案 1 :(得分: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仅用于以简单的方式呈现面板的内容。在你的情况下,使用Template是不合适的,因为它与config属性和面板的项目无关。