Модель ExtJS-поля конкатенации
есть ли разумный способ в модели, чтобы объединить два поля, что-то вроде этого:
Ext.define('model.Person', {
extend: 'Ext.data.Model',
idProperty: 'Id',
fields: [
{ name: 'Id', type: 'int' },
{ name: 'FirstName', type: 'string' },
{ name: 'LastName', type: 'string' },
{ name: 'FullName', type: 'string', mapping: 'FirstName + " " + LastName' }
]
});
Я пробовал множество способов, но не могу заставить их работать.
Я собирался использовать функцию в модели, чтобы вставить два поля вместе, но я также хочу использовать это как displayfield внутри 'itemselector' (пользовательский элемент управления) и выключатель это динамично и этот контроль не нравится 'полное имя () в качестве displayfield.
любой мысли очень ценятся.
1 ответов
использовать convert
конфигурация Ext.данные.Поле:http://docs.sencha.com/extjs/4.2.1/#!/api / Ext.данные.Поле-cfg-конвертировать
{ name: 'FirstName', type: 'string' },
{ name: 'LastName', type: 'string' },
{
name: 'FullName',
type: 'string',
convert: function( v, record ) {
return record.get( 'FirstName' ) + ' ' + record.get( 'LastName' )
}
}
вот живой пример:https://fiddle.sencha.com/#fiddle/mf