ST2:使用商店的两个独特实例& MVC

时间:2012-01-21 14:32:56

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

我有一个简单的测试应用程序,我有一个旋转木马,它将实例化多个相同类型的网格,每个网格都有自己的商店副本。

传送带:

Ext.define('App.view.TopPageCarousel', {
extend: 'Ext.Carousel',
xtype : 'app-toppagecarousel',
requires: ['Ext.Carousel', 'App.view.TopPageGrid'],
config: {
    title: 'Top Pages',
    items: [{
        xtype : 'app-toppagegrid',
        title : 'titleA'
    },{
        xtype : 'app-toppagegrid',
        title : 'titleB'
    }]
}

});

起初我将网格中的商店定义为其配置中的属性,我让控制器监听商店更改,只是为了让我知道它正在加载。进行ajax调用并填充网格。但是,即使每次调用都返回了唯一数据,所有网格都填充了相同的数据。

然后我发现一条帖子说我需要在网格填充时实例化商店,如下所示:

constructor : function() {
    var me = this;
    Ext.apply(me, {
        store : me.buildStore()
    });
    me.callParent(arguments);
    me.store.load({params : {ufq : this.title}});
},
buildStore : function() {
    return Ext.create('App.store.Links');
}

这种作品。正在进行ajax调用,但现在没有填充网格,我没有看到console.log(“Store loaded”);被执行,我放在控制器。我做错了什么?

1 个答案:

答案 0 :(得分:0)

事实证明,在ST2中,而不是使用Ext.create,最好的办法是(在我的特定情况下,不作为标准):

constructor : function() {
    this.callParent(arguments);
    Ext.setStore('App.store.Links');
},

使用Ext.getStore& Ext.setStore现在是必要的,如果你想要与事件和事件一起带来很多好处。商店经理。