我有一个简单的测试应用程序,我有一个旋转木马,它将实例化多个相同类型的网格,每个网格都有自己的商店副本。
传送带:
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”);被执行,我放在控制器。我做错了什么?
答案 0 :(得分:0)
事实证明,在ST2中,而不是使用Ext.create,最好的办法是(在我的特定情况下,不作为标准):
constructor : function() {
this.callParent(arguments);
Ext.setStore('App.store.Links');
},
使用Ext.getStore& Ext.setStore现在是必要的,如果你想要与事件和事件一起带来很多好处。商店经理。