Во-первых, это не сработает так, как вы ожидаете, потому что заполнители шаблонов заменяются позже, и когда вы делаете '<img height="20" src="imgPath"/>'.times("{group}")
, на самом деле вы вызываете String.prototype.times
с "{group}"
в качестве параметра, это не будет работать.
Во-вторых, я не привык работать с sencha-touch, я могу предложить (некрасивый) обходной путь, но вам будет гораздо лучше, если кто-нибудь ответит на вопрос о более удобном шаблоне sencha-touch, это код :
function repeatImg(el, n){
var newel = null;
for (var i = 0; i < n; ++i){
newel = el.cloneNode(false);
newel.onload = null;
el.parentNode.insertBefore(newel, el);
}
newel = null;
}
var list = new Ext.List(
{
height : document.height - 150,
itemTpl : "<div>blabla..</div>",
store : listStore,
groupTpl :[
'<tpl for=".">',
'<div class="x-list-group x-group-{id}">',
'<h3 class="x-list-header">'+ '<img height="20" src="imgPath" onload="repeatImg(this, parseInt({group}, 10) - 1);"/>'+ '</h3>',
'<div class="x-list-group-items">',
'{items}',
'</div>',
'</div>',
'</tpl>'
],
grouped : true
});
Это работает, если {group}
заменен числом, не проверял другие значения (например, строки);
Редактировать: Вы также можете иметь различные изображения, такие как 'img-0.png', 'img-1.png', ..., 'img-n.png' и использовать такой код:
var list = new Ext.List(
{
height : document.height - 150,
itemTpl : "<div>blabla..</div>",
store : listStore,
groupTpl :[
'<tpl for=".">',
'<div class="x-list-group x-group-{id}">',
'<h3 class="x-list-header">'+ '<img height="20" src="img-{group}.png" />'+ '</h3>',
'<div class="x-list-group-items">',
'{items}',
'</div>',
'</div>',
'</tpl>'
],
grouped : true
});