друзья! У меня есть сетка со столбцом виджетов. Я получаю данные для магазина с сервера. Я получаю разные шаблоны для каждой строки и пытаюсь установить эти шаблоны в своем виджете. Однако я не могу отображать данные в шаблонах.
Вот мой пример скрипки https://fiddle.sencha.com/#fiddle/3j41&view/editor
Я ожидаю, что во втором столбце будут отображаться данные с разными шаблонами. Вместо данных я вижу {testName}. В третьем столбце все работает, но это статические данные
Можете ли вы помочь мне понять, что не так?
Мой результат:
Мой магазин:
var store = Ext.create('Ext.data.Store', {
fields: ['name', 'tplConfig'],
data: [{
name: 'Test 1',
tplConfig: {
tplBody: '<div><b>Name:</b> {testName}</div> <div>any text</div>',
tplData: {
testName: 'Alex'
}
}
} ]
});
Моя сетка:
{
xtype: 'grid',
title: 'Widget Column Demo',
store: store,
columns: [
.....
{
xtype: 'widgetcolumn',
text: 'Dynamic',
width: 120,
dataIndex: 'tplConfig',
widget: {
xtype: 'component',
tpl: '{tplBody}',
//data: '{tplData}' //it's not working
}
}
.......
]
}
Вы можете использовать рендерер:
{
xtype: 'gridcolumn',
text: 'Dynamic',
width: 120,
dataIndex: 'tplConfig',
renderer: function(tplConfig) {
var t = new Ext.Template(tplConfig.tplBody);
return t.apply(tplConfig.tplData);
}
}
или как 1 вкладыш:
return new Ext.Template(tplConfig.tplBody).apply(tplConfig.tplData);