Это сообщение немного старое, но я исследовал эту тему и использовал другой подход.
Я использую Sencha Touch v2.0. Я создаю ярлык и помещаю его в форму. Панель, как обычно. Затем я настроил ярлык TPL в конструкторе, чтобы включить поля модели. Применяя значения к formpanel, я также вызываю метод apply () на метке tpl. Следующий рабочий пример иллюстрирует это.
app.js:
Ext.Loader.setConfig({
enabled: true
});
Ext.application({
views: [
'MyFormPanel'
],
name: 'MyApp',
launch: function() {
Ext.create('MyApp.view.MyFormPanel', {fullscreen: true});
}
});
view.MyFormPanel.js
Ext.define('MyApp.view.MyFormPanel', {
extend: 'Ext.form.Panel',
alias: 'widget.myformpanel',
config: {
items: [
{
xtype: 'label',
itemId: 'myLabel',
tpl: [
'Hello, {firstName} {lastName}, please change your email below:',
''
]
},
{
xtype: 'textfield',
label: 'Email:'
}
],
listeners: [
{
fn: 'onFormpanelInitialize',
event: 'initialize'
}
]
},
onFormpanelInitialize: function(component, options) {
var person = Ext.decode("{firstName: 'John',lastName: 'Dow',email: 'jd@somewhere.com'}");
// apply value to the form
this.setValues(person);
// get the updated text for the label
var label = this.down('#myLabel');
var html = label.getTpl().apply(person);
label.setHtml(html);
}
});
Таким образом, идея заключается в том, чтобы сохранить шаблон метки в поле label.tpl, затем получить значение метки среды выполнения с помощью метода apply () шаблона, а затем установить для него текст метки.