Sencha Touch,一个由列表和数据视图显示使用的商店?

时间:2013-06-07 22:32:13

标签: mobile sencha-touch sencha-touch-2 store

所以我实现了一个数据视图和一个列表格式卡来在商店中显示我的json。我试图让两个视图共享一个商店,因为数据是相同的。然而,我这样做的方式并没有真正起作用,如果我只有Dataview或List它可以正常工作。当我同时打电话给商店时,它将停止工作......请帮忙!

数据视图:

Ext.define('Sencha.view.hoardboard.HoardList', {
   extend: 'Ext.DataView',
   xtype: "hoardlist",
   requires: ['Ext.XTemplate'],
   config: {

                flex:1,
                scrollable: true,
                store: 'Plist',   
                baseCls: 'columns',

                itemTpl: '<div class=pin><img src={image}><div style="padding-top: 10px; padding-left: 20px; padding-right:20px">{name}<br>{brand}</div></div>'

   }
});

列表视图

Ext.define('Sencha.view.hoardboard.HoardList2', {
   extend: 'Ext.List',
   xtype: "hoardlist2",

   config: {
     flex:1,
     scrollable: true,
     store: 'Plist',   
     grouped: true,
     itemTpl: '{name}'
   }
});

模型

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

            ]

        }
    });

存储

Ext.define('Sencha.store.HoardList',{
    extend: 'Ext.data.Store',
    storeId: 'Plist',
    model:'Sencha.model.HoardList',
    title: 'My Collection',
    autoLoad: true,
    sorters: 'name',
    grouper: {
        groupFn: function(record) {
            return record.get('name')[0];
        }
    },
    proxy: {
            type: 'ajax',
            url : 'products.json',
            reader: {type: 'json', rootProperty:'products'}

        }

});

非常感谢你!

1 个答案:

答案 0 :(得分:0)

一般来说,当您使用Sencha框架时,您不会在多个可视控件之间共享一个商店对象。

如果你想在两个地方使用同一个商店,你需要克隆它并有两个独立的商店对象。