2015-06-22 2 views
1

Я получаю данные от REST API, возвращающие данные, а один из столбцов - это статус группы, и это определяется как целое число в базе данных, и я хочу преобразовать его в строку, прежде чем отображать их в UI. Например, возврат статуса из REST API равен 1, но я хочу отображать как «Действительный» ... Но не знаю, где будет происходить преобразование. Должен ли я конвертировать из int-> string в магазин или где я должен сделать это преобразование. Пожалуйста помоги.
Вот моя модель:Преобразование данных столбца ExtJS

// Model 
Ext.define('Console.model.Group', { 
    extend: 'Ext.data.Model', 
    fields: [{ 
    name: 'id', 
    type: 'string' 
    }, { 
    name: 'group', 
    type: 'string' 
    }, { 
    name: 'state', 
    type: 'string' 
    }], 

    proxy: { 
     type: 'rest', 
     url: '/api/groups', // Joanne need to change the URL name here 
     reader: 'json' 
    } 

}); 

// store 
Ext.define('Console.store.Groups', { 
    extend: 'Ext.data.Store', 
    model: 'Console.model.Group', 
    autoSync: false, 
    buffered: false, 
    pageSize: 1000, 
    autoLoad: false, 
    autoDestory: true, 
    purgePageCount: 3, 
    sorters: [{ 
    property: 'label', 
    }], 
    trailingBufferZone: 100, 

    proxy: { 
    simpleSortMode: true, 
     type: 'rest', 
     url: '/api/groups', 
     reader: { 
      type: 'json', 
      root: 'data', 
      totalProperty: 'total' 
     } 
    } 
}); 
+0

Это зависит. Если вы только собираетесь использовать его как строку и никогда не хотите значения int, сделайте это на уровне модели. Если вы хотите просто отобразить его таким образом для сетки, используйте средство рендеринга столбцов. –

ответ

0

Если вы собираетесь хотите использовать это отображение более чем в одном месте, то самое удобное, что нужно сделать, чтобы сделать отображение/преобразования и создать виртуальное поле прямо на вашей модели:

 { 
      name: 'statusText', 
      mapping: 'status', 
      convert: function(v, record) { 
        var map = {0:'Invalid', 1: 'Valid}; 
        return map[v]; 
      } 
     } 
Смежные вопросы