0

我是 Sencha Touch 2 的新手,我试图通过代理使用 store 和模型存储来自 json 的值,但不要在我错的地方

我的模型

Ext.regModel('Product', {
    fields: [
        {name: 'name',        type: 'string'},
        {name: 'description', type: 'string'},
        {name: 'price',       type: 'float'},
        {name: 'image_url',   type: 'string'},
        {name: 'in_stock',    type: 'boolean'}
    ]

});

我的店铺

Dzineapp.BlogStore = new Ext.data.Store({
model: 'Product',
autoLoad: false,
proxy: new Ext.data.AjaxProxy({
    type: 'ajax',
    url: 'http://localhost/products.json',
    reader: {
        type: 'json',
        root: 'products'
    },
    writer: {
        encode: true,
        type: 'json'
    }
    })
});

产品.json

{
    "products": [
        {"name": "Some Product",    "price": 9.99, "image_url": "product1.jpg", "in_stock": true},
        {"name": "Another Product", "price": 7.50, "image_url": "product2.jpg", "in_stock": true},
        {"name": "A third product", "price": 2.35, "image_url": "product3.jpg", "in_stock": false}

    ]
}

我的观点

 Dzineapp.blogPanel = new Ext.List({
            id: 'bloglist',
            store: Dzineapp.BlogStore,
            itemTpl: '<div class="contact">{name}</div>'
        });

但是我的应用程序没有显示任何值,任何人都可以在我犯错的地方帮助我.. 我只是 sencha 的初学者

4

3 回答 3

1

1)您应该使用 Ext.create() 而不是 new ... (但这应该可以正常工作)

2)您应该在列表配置中的存储值周围添加 '

3) 检查您是否将您的商店添加到您的 app.js 中的 stores[] 或在您的列表中添加一个需求。

4)使用 firebug/chrome 开发工具检查您的请求是否正常(HTTP:200)并且您是否获得了 json。

希望这可以帮助

于 2012-08-06T16:57:44.040 回答
0

在您的商店配置中,而不是使用

root: 'products'

尝试使用

rootProperty: 'products'
于 2012-09-19T19:05:02.337 回答
0

您可以按以下方式更新您的商店吗

Dzineapp.BlogStore = new Ext.data.Store({
   model: 'Product',
   autoLoad: true,
   proxy: {
     type: 'ajax',
     url: 'http://localhost/products.json',
     reader: {
       type: 'json',
       root: 'products'
     }
   }
});

我希望它有效。

我们必须加载商店以显示数据。

谢谢,斯瓦蒂。

于 2012-04-26T09:04:45.763 回答