我必须在列表的行中设置带有文本的图像。但是图像是在运行时选择的。
这是我的商店:
Ext.define('MyApp.model.Sample', {
extend: 'Ext.data.Model',
config: {
fields: [
{ name: 'uName', mapping: '@name' },
{ name: 'uId', mapping: '@id' }
]
}
});
在我的列表itemTpl中,我能够显示 uName ,并且我创建了一个函数(getImageURL),假设它返回所需的图像,那么我将如何使用或者是什么方式/从上面使用 uId 的语法(其值为0或1)
这是我的清单:
itemTpl : new Ext.XTemplate("<img src=\"{[this.getImageURL()]}\" width=\"20\" height=\"20\"></img><span> {uName}</span>",
{
getImageURL : function()
{
// I have to return either of two images
// if uId = 0, return 'resources/images/Image0.png'
// if uId = 1, return 'resources/images/Image1.png'
}
}
),
答案 0 :(得分:2)
您不需要使用某个功能。 XTemplate
提供if
和else
语句。
示例强>
var tpl = new Ext.XTemplate(
'<p>Name: {name}</p>',
'<p>Kids: ',
'<tpl for="kids">',
'<p>{name} is a ',
'<tpl if="age >= 13">',
'<p>teenager</p>',
'<tpl elseif="age >= 2">',
'<p>kid</p>',
'<tpl else>',
'<p>baby</p>',
'</tpl>',
'</tpl></p>'
);
希望这有帮助