Sencha Touch - 查看/存储/模型代理问题

时间:2013-05-18 09:01:25

标签: extjs sencha-touch sencha-touch-2 sencha-touch-2-proxy

我对Sencha很新。只是想弄清楚为什么我正在为我的项目做我的View / Store / Model的方式不起作用><

我正在尝试从我的json中获取产品列表,现在它并没有真正起作用。任何建议将不胜感激!

以下是代码(编辑,我第一次粘贴了错误的代码,更正了><抱歉):

查看:

Ext.define('Sencha.view.ProductsList', {
   extend: 'Ext.DataView',
   xtype: "productslist",

   config: {
    flex:1,
     scrollable: true,

     store: 'Plist',
 itemTpl: '<img src={image} width="90%"><br>{name}'
   }
});

模型

Ext.define('Sencha.model.ProductsList', {
        extend: 'Ext.data.Model',
        config: {
            fields: [
                {
                    name: 'name',
                    type: 'string'
                }, {
                    name: 'image',
                    type: 'string'
                }

            ]

        }
    });

商品

Ext.create('Ext.data.Store',{
    storeId: 'Plist',
    model:'Sencha.model.ProductsList',
    title: 'My Collection',
    proxy: {
        type: 'ajax',
        url : '/products.json',
        reader: {
            type: 'json',
            root: 'products'
        }
    }
});

谢谢!

附加信息:我将这三个部分放在视图文件中(并将Sencha.model.ProductsList重命名为Productslist,它有效。当我将它们分成视图,存储和模型时,它就会停止这与我链接这些文件的方式有关。

任何有更多洞察力的人?

1 个答案:

答案 0 :(得分:0)

有一件事:

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

应该是:

reader: {
    type: 'json',
    rootProperty: 'products'
}

此外,

itemTpl: '<img src={image} width="90%"><br>{name}'

应该在{image}周围加上引号:

itemTpl: '<img src="{image}" width="90%"><br>{name}'