Простой пример JSON с senchaTouch - PullRequest
       1

Простой пример JSON с senchaTouch

0 голосов
/ 01 августа 2011

Я пытаюсь выполнить простую операцию JSON:

Я хочу написать на своей странице текст из файла в формате JSON.

Файл выглядит так: (data.json)

{  
     "id": "0",
     "name":"myname"    
}

Скрипт получает JSON: (main.js)

Ext.setup({
onReady: function() {

    Ext.regModel('Person', {
        fields: [
            {name: 'id', type: 'string'},
            {name: 'name', type: 'string'}
        ]
    });

    //I want the  name to be written on the page
    var itemTemplate = new Ext.XTemplate(
        '<tpl for=".">',
         '{name}',
        '</tpl>');

    // I get and decode the Json from data.json   
    var jsonStore = new Ext.data.Store({
        model: "Person",
        proxy: {
            type: 'ajax',
            url: 'data.json',
            reader: {
                type: 'json'
            }
        },
        autoLoad: true
    });

    // The panel should get the  stored Result and display it    
    var jsonPanel = new Ext.Panel ({
        title: "json",            
        fullscreen: true,         
        items: [
            {
                xtype: 'list',
                store: jsonStore,
                itemTpl:itemTemplate,                 
            }
        ]
    });

}
});

Файл index.html вызывает все указанные выше файлы, а sencha-touch.js и .css.Я просто не вижу ничего написанного на странице.

Если кто-нибудь подскажет, что я делаю неправильно, это очень поможет.

Ответы [ 2 ]

0 голосов
/ 22 января 2013

Насколько я помню (по крайней мере, так было в ST1, я не пробовал в ST2), Ajax-ридер нельзя использовать для доступа к локальным файлам.Вам нужно, чтобы ваши данные JSON доставлялись через веб-сервер

0 голосов
/ 01 августа 2011

Попробуйте поместить ваши объекты JSON в нотацию массива, например:

[{
    "id": "0",
    "name":"myname"    
}, {  
    "id": "1",
    "name":"myname2"    
}]
...