2015-09-07 3 views
0

Магазин:Ext JS преобразование данных

Ext.define('firstApp.store.school', { 
    model: 'School', 
    root: 'children', 
    proxy: { 
    type: 'ajax', 
    url: 'http://localhost/firstApp/app/data/school.json', 
    reader: { 
     type: 'json' 
    } 
    }, 
    autoLoad: true 
}); 

Модель:

Ext.define('School', { 
    extend: 'Ext.data.Model', 
    fields: [ 
    {name: 'text', type: 'string'} 
    ] 
}); 

JSON:

{ 
    "success": true, 
    "children": [ 
    {"firstName": "Phil", "lastName": "Potato", "leaf": true }, 
    {"firstName": "Nico", "lastName": "Potato", "expanded": true, "children": [ 
     {"firstName": "Mitchell", "lastName": "Potato", "leaf": true } 
    ]}, 
    { "firstName": "Sue", "lastName": "Potato", "leaf": true } 
    ] 
} 

Я хочу, чтобы преобразовать данные из моего файла JSON I nto School, сделав text в модели, равной firstName + lastName от JSON. Недавно искал какую-то информацию, но не нашел полезной информации. Не могли бы вы помочь мне с этим?

ответ

2

Для этого вы можете использовать convert.

Модель:

Ext.define('Dude', { 
    extend: 'Ext.data.Model', 
    fields: [ 
     {name: 'fullname', type: 'string'}, 
     {name: 'firstname', mapping: 'name.first'}, 
     {name: 'lastname', mapping: 'name.last'}, 
     {name: 'city', defaultValue: 'unknown'}, 
     'state', 
     {name: 'text', convert: function(v, record){ 
      !record.data.city ? '' : (record.data.city + ', ' + record.data.state); 
     }} 
    ] 
}); 
+0

Спасибо! Уже понял это :) –