Метаданные магазина не работают должным образом - PullRequest
0 голосов
/ 13 марта 2012

Я пытаюсь установить свойство для хранилища, используя функцию метаданных extJS.

Мой ответ JSON выглядит так:

{
    "code": 200,
    "data": [
        {
            "User": {
                "id": "1",
                "username": "julian",
                "firstname": "Julian",
            }
        }
    ],
    "success": true,
    "metaData": {
        "displayField": "username"
    }
}

Теперь я пытаюсь вывести displayField в событие загрузки моего магазина. Вот мой магазин:

Ext.define('AM.store.Users', {
    extend:'Ext.data.Store',
    model:'AM.model.User',
    autoLoad:false,
    displayField: null,
    listeners:{
        load:function (store) {
            console.log(store.displayField);
        }
    },
    proxy:{
    type:'ajax',
        api:{
            read:BASE_PATH + 'users/index',
            create:BASE_PATH + 'users/edit',
            update:BASE_PATH + 'users/edit',
        destroy:BASE_PATH + 'users/remove'
        },
        reader:{
            type:'json',
            root:'data',
            record:'User',
            messageProperty:"code"
        },
        writer:{
            type:'json',
            writeAllFields:true
        }
    }
});

console.log () выводит null

UPDATE:

store.proxy.reader.displayField содержит displayField с правильными данными. Но это не имеет смысла.

1 Ответ

0 голосов
/ 13 марта 2012

Просматривая исходный код ExtJs, я думаю, что meteData должен быть внутри вашего data массива.У вас есть контроль над серверной стороной?Попытайтесь поместить это там, посмотрите, распознает ли клиент это.

...