所以說我有一家商店,而在我的數據庫中我有20,000,000行。 (足夠了,以便我設置頁面大小,以便每頁只返回100行)。由於我已經設定了頁面大小,所以當我進行原始通話時,我只收回100個項目。因此以下返回空:ExtJS 4.2:從遠程存儲加載單個項目
Ext.getStore('MyLargeStore').getById(200); // returns null
這對我來說是有道理的,因爲從技術上講,JS方面的商店沒有特定的id集。但是,如果該ID不存在,是否有強制查找?從我可以告訴我已經做了一切「遠程」和需要它在我的商店「自動」:
Ext.define('MyApp.store.MyLargeStore', {
extend: 'Ext.data.Store',
requires: [
'MyApp.model.MyLargeModel'
],
constructor: function(cfg) {
var me = this;
cfg = cfg || {};
me.callParent([Ext.apply({
autoLoad: true,
autoSync: true,
model: 'MyApp.model.MyLargeModel',
remoteFilter: true,
remoteSort: true,
storeId: 'MyLargeModel',
buffered: true,
pageSize: 100
}, cfg)]);
}
});
反正,使其從遠程服務器拉每當一個ID不存在?我似乎無法找到在文檔中的方法(除非我錯過了它,因爲他們的文檔有時難以破譯有時= /)
另外,我假設你總是可以在商店上做一個負載,但我很確定,如果我只加載那一行,那麼所有其他使用該商店的位置也只會有該行(我不一定要這樣做)。因此理論上,創建一個商店是我唯一的選項?似乎應該有一個更簡單的方法,因此我想我會問。必須有一些更好的方法,而不是創建一個商店,然後從該新商店獲取記錄...
這將是我通常做的(做一個方面ajax調用),但我認爲ExtJS會有一些方法來爲我打電話。是不是這樣,或者我會通過模型來做獨立呼叫? (或者我真的需要創建一個側面的AJAX調用來獲得單行?)[我試圖儘可能保留ExtJS/Architect中包含的所有內容,因此我試圖採用這種方法] –
你在這裏試圖做的是超出了商店設計的範圍。我可以在高設計級別看到您認爲它可能具有此功能的位置,但是當您瞭解商店與服務器交互方式的代碼時,它並不是爲此設計的。 – Reimius
我的理解,但我的問題,然後變成會經歷一個模型更好,或者我應該直接打一個Ajax調用我的服務器,並從那裏抓取數據? (PS感謝您的幫助btw = D) –