Загрузка статических данных JSON из URL для панели сетки ExtJS - PullRequest
1 голос
/ 14 ноября 2011

Я попытался реализовать панель сетки, используя данные из файла JSON, который находится в том же домене, что и файл Javascript, содержащий код ExtJs. Я использую ExtJs 3.4.

Сетка отображается, но без данных. Firebug показывает сообщение об ошибке, которое говорит мне, что есть ошибка в первой строке файла JSON («не правильно сформированный»). Я проверил файл JSON, и все в порядке.

Вот мой код:

Ext.onReady(function () {
    var myStore = new Ext.data.JsonStore({
        url: 'data.json',
        root: 'rows',
        autoLoad: true,
        fields: [{
            name: 'person',
            type: 'string'
        }, {
            name: 'product',
            type: 'string'
        }]
    });

    var grid = new Ext.grid.GridPanel({
        id: 'gridPanel',
        title: 'Grid example',
        width: 250,
        height: 250,
        renderTo: 'grid-example',
        store: myStore,
        columns: [{
            header: 'Person',
            dataIndex: 'person'
        }, {
            header: 'Product',
            dataIndex: 'product'
        }]
    });
});

Мои данные JSON:

{
    "rows": [{
        "person": "Jamie Avins",
        "product": "Ladder"
    }, {
        "person": "Ed Spencer",
        "product": "Spanner"
    }]
}

У вас есть идеи, что случилось? Может кто-нибудь дать мне несколько советов?

Заранее спасибо!

Seha

Ответы [ 2 ]

1 голос
/ 18 февраля 2013

Использование:

reader: {
    type: 'json',
    root: 'rows'
}

в вашем JsonStore и подтвердите ваш ответ JSON.

Надеюсь, это сработает для вас.

0 голосов
/ 15 ноября 2011

Я проверил ваш код и точную строку JSON, вырезанную и вставленную из вашего примера.Он работал очень хорошо, используя Grails для возврата строки (не чтение из файла).Firebug не жаловался.Похоже, что сам файл может быть проблемой, может быть, скрытый символ закрадывается.

...