1

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

轮播:

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"); 正在执行,我放置在控制器中。我究竟做错了什么?

4

1 回答 1

0

事实证明,在 ST2 中而不是使用 Ext.create,最好的做法是(在我的特定实例中,不是标准):

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

如果您想要很多与活动和商店经理一起获得的好处,那么现在使用 Ext.getStore 和 Ext.setStore 是必要的。

于 2012-02-09T23:37:36.427 回答