2012-07-20 48 views
3

我有一个商店APP.store.Posts,我想实例化3个不同的时间。它们都将保存相同类型的数据,但在重新加载,分页等时将使用不同的参数。在控制器中,我在onLaunch函数中执行此操作。在Ext.data.Store上使用storeId没有创建唯一的实例

onLaunch: function() { 

    Ext.create('APP.store.Posts',{ 
     storeId: 'unclassifiedPosts' 
    }); 
    Ext.create('APP.store.Posts',{ 
     storeId: 'positivePosts' 
    }); 
    Ext.create('APP.store.Posts',{ 
     storeId: 'negativePosts' 
    }); 
}, 

后来的后来,在我的控制器上创建的beforerender监听方法,我这样做:

beforeRenderPostsGrid: function(grid) { 
    var store = Ext.getStore('unclassifiedPosts'); 
    store.load(); 
}, 
beforeRenderPositivePostsGrid: function(grid) {   
    var store = Ext.getStore('positivePosts'); 
    store.getProxy().extraParams = {'some_param' : 'some_value'}; 
    store.load(); 
    var checkOtherStore = Ext.getStore('unclassifiedPosts'); //THIS STORE NOW HAS SAME PARAMS AS positivePosts STORE 
}, 

的问题是,无论beforerrender网格最后呼吁,所有的3家商店有这些参数。所以最初的加载是好的,但如果我做任何刷新,分页等等。它们都显示相同的数据B/C每个商店的代理具有相同的extraParams。

从我所了解的情况来看,storeId参数应该让我的商店独一无二,所以我错过了一个步骤?

+1

代理是否在'APP.store.Posts'或其包含的模型上定义? – 2012-07-20 15:24:01

+0

代理在模型上定义。没有认为这会是一个问题,但这是有道理的。 – Nathan 2012-07-20 15:35:37

回答

1

我遇到了同样的问题。我的商店实例是独特的,但它们由于某种原因而获得了相同的代理。我发现解决这个问题的唯一方法是在创建商店时包含代理配置。必须包含完整的代理配置,这里是实际代码:

missingStore = Ext.create('ST.store.Attendance', { 
    storeId: 'Missing_Attendance', 
    proxy: { 
     type: 'ajax', 
     url: 'query', 
     extraParams: { 
      resource: 'Attendance', 
      parameters: '6' 
     }, 
     writer: 'pipe' 
    } 
}), 
partialStore = Ext.create('ST.store.Attendance', { 
    storeId: 'Partial_Attendance', 
    proxy: { 
     type: 'ajax', 
     url: 'query', 
     extraParams: { 
      resource: 'Attendance', 
      parameters: '5' 
     }, 
     writer: 'pipe' 
    } 
}), 
attendedStore = Ext.create('ST.store.Attendance', { 
    storeId: 'Attended_Attendance', 
    proxy: { 
     type: 'ajax', 
     url: 'query', 
     extraParams: { 
      resource: 'Attendance', 
      parameters: '4' 
     }, 
     writer: 'pipe' 
    } 
}), 
+0

上面的评论也指出我将代理添加到模型中,而不是实际的商店。但如果这是唯一的工作,我会接受。 – Nathan 2012-07-20 15:37:47

+0

我尝试将我的代理定义从商店移动到原来的模型,但这并没有改变我的任何东西。 – Geronimo 2012-07-20 15:40:10

+0

这就是我刚刚做的,它对我有用。感谢您的帮助指出 – Nathan 2012-07-20 15:43:21

相关问题