2012-07-20 51 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

相關問題