Разбор переменных с точечной нотацией в Extjs - PullRequest
0 голосов
/ 02 марта 2012

Значения становятся нулевыми в сетке в Extjs, когда я анализирую эти значения из json, в основном это потому, что метка свойств с точками.

"properties": {
            "financialYear": "2009",
            "employee.employeeId": "12345",
            "employee.employeeName": "abc"
        }

Как получить значение employee.employeeId в формате .js для отображения в сетке Extjs.

Прямо сейчас я так картирую в .js,

Ext.define('DocProperties',{
extend: 'Ext.data.Model',
fields: [
    {name: 'financialYear', type: 'string'},
    {name:'employeeId', mapping:'properties.employee.employeeId',type: 'string'},
]});

и для отображения на панели сетки я получаю доступ вот так,

{
        width:100,
        header: "Employee ID",
        dataIndex: 'employeeId',
        sortable: true
    } 

любое решение или обходной путь для этого.


@ DmitryB спасибо, но это не решило мою проблему, у меня есть такой магазин

Ext.onReady(function() {

var store = Ext.create('Ext.data.Store', {
    model: 'DocResult',
    autoLoad: true,
    proxy: {
        type: 'rest',
        url : 'sample-data.json',
        reader: {
            type: 'json',
            root: 'results',
            useSimpleAccessors: true
        }
    }
});

и в моей модели я определил это

Ext.define('DocResult',{
extend: 'Ext.data.Model',
fields: [
    {name: 'id', type: 'int'},
    {name:'employeeId', mapping:'properties.employee.employeeId',type: 'string'}

] });

, а затем и в моем сеточном дисплее Ext появляется пустое значение. Пожалуйста, помогите.

Ответы [ 2 ]

2 голосов
/ 03 марта 2012

Просто просматривая исходный код, вы можете попробовать следующее:

mapping:'properties["employee.employeeId"]'

Попробуйте это в сочетании с useSimpleAccessors, установленным либо true или false, и дайте мне знать, чторезультат.

1 голос
/ 03 марта 2012

Попробуйте установить для параметра useSimpleAccessors значение true.По умолчанию он имеет значение false.

http://docs.sencha.com/ext-js/4-0/#!/api/Ext.data.reader.Json-cfg-useSimpleAccessors

РЕДАКТИРОВАТЬ: также на основе определения хранилища, которое вы предоставили в другом ответе, конфигурации чтения JSON необходимо изменить на root: "properties"

Если вы не предоставили полный пример JSON, а свойства обернуты в объект «results», вам нужно установить root: «results» и records: «properties»

...