1
我在下面下面的代碼,這將創建一個是FilteringSelect並設置第一選擇的項目:道場是FilteringSelect負載數據
// Store initialization:
var jsonStore = custom.store.JsonRest({ ... });
var memoryStore = dojo.store.Memory();
var myStore = dojo.store.Cache(jsonStore, memoryStore);
var dataStore = custom.store.MyObjStore({ objectStore: myStore, ... });
// FilteringSelect initialization:
var fsel = new dijit.form.FilteringSelect({
id: 'fsel',
searchAttr: 'id',
store: dataStore
});
// Setting the first item on FilteringSelect, retrieved from store objects
fsel.store.fetch({ query: {id:""},
onComplete: function (items, request) {
var val = "";
if (items.length>0) val = items[0].id;
fsel.set('value', val);
}
});
第一個問題是,如果
items[0].id = 0
,此項目是未在FilteringSelect上設置。fsel.store.fetch({ ... })
查詢服務器,這是確定的。問題是,檢索項目不保存在內存中,或它們,而是由上是FilteringSelect下一個事件都不能檢索。 我的意思是,當我點擊FilteringSelect來的下拉首次另一查詢被髮送到服務器,以獲得該項目,下面的時候,他們從內存中獲取。
誰能幫我解決這兩個問題嗎?
注:我使用的Dojo版本1.7.2(27913)。
'VAL =項[0] .ID [0];'應該這樣做。商店值以數組的形式呈現。 – undefined
請問您可以告訴我們您正在使用哪種版本的dojo。 – undefined
'id'是對象的一個屬性,我得到了商店中的第一件商品,所以'items [0]'。 我忘了提及的版本,我用**道場1.7.2(27913)**。 –