Модель 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