Sencha Touch - 将JSON变量放入Data Store?

时间:2012-02-04 06:15:30

标签: jquery json sencha-touch

我有一个带有JSON的变量(它是一个变量,因为我从本地文件中使用JQuery ...离线,所以这是必要的)。无论如何,我怎么得到它所以这被视为商店内的JSON?

我尝试了以下操作,但没有加载。

// jData is the variable with the JSON
var jData = loadJSON("sampledata.json");


Ext.regModel('myStore', {
fields: [
        {name:"Name",type:"string"},
        {name:"id",type:"int"}
        ]
});


var myStore = new Ext.data.Store({
model: 'myStore',
autoLoad: true,
 proxy: {
    data: jData,
    reader: {
        type: 'json'
    }
}});

JSON看起来像:    [{“Name”:“High”,“id”:1},{“Name”:“Medium”,“id”:2},{“Name”:“Low”,“id”:3}] < / p>

我正在构建Android应用并使用:

alert(jData);

我完全收到了JSON,但无法弄清楚如何将它放入商店以便在选择字段中使用

1 个答案:

答案 0 :(得分:1)

有多种方法可以做到这一点。最简单的方法是:

// jData is the variable with the JSON
var jData = loadJSON("sampledata.json");


Ext.regModel('myStore', {
fields: [
        {name:"Name",type:"string"},
        {name:"id",type:"int"}
        ]
});


var myStore = new Ext.data.Store({
    model: 'myStore',
    data: jData
});

如果这不起作用,请尝试:

// jData is the variable with the JSON
var jData = loadJSON("sampledata.json");


Ext.regModel('myStore', {
fields: [
        {name:"Name",type:"string"},
        {name:"id",type:"int"}
        ]
});


var myStore = new Ext.data.Store({
    model: 'myStore',
    autoLoad: true,
        proxy: {
            type: 'ajax',
            url: 'sampledata.json',
            reader: {
                type: 'json'
            }
    }

});

另见:this