2012-08-29 67 views
1

我正在將應用程序從dojo 1.5升級到1.7。此應用程序具有多個由ItemFileReadStores支持的FilteringSelect。例如,在Dojo 1.7+中,FilteringSelect似乎不再適用於ItemFileReadStore

this.docTypeSel = this.adopt(dijit.form.FilteringSelect, { 
     name: "docType", 
     autoComplete: true 
    }, document.createElement("select")); 
    this.docTypeSel.placeAt(this.formNode); 
    var url = dojo.moduleUrl("imed", "DocumentTypes.txt"); 
    this.documentTypeStore = new dojo.data.ItemFileReadStore({ url: url, urlPreventCache: "true" }); 
    this.docTypeSel.store = this.documentTypeStore; 

在1.7,調用this.docTypeSel.set('value',foo)失敗,因爲他們試圖撥打this.store.get(value)。我的理解是,這是新的dojo/store API。舊的dojo.data API和新的dojo/store API之間是否有某種適配器?如果不是,建議對ItemFileReadStore進行更換。 dojo/store/Memory似乎很接近,但似乎沒有辦法從url中獲取數據。

回答

2

你看過使用dojo/store/DataStore?我沒有親自使用它,但它似乎是你想使用的,因爲dijit/form/FilteringSelect正在尋找使用dojo/store API的商店。

另一方面,dijit/form/Select期望執行dojo/data。如果你想要使用dojo/store執行dijit/form/Select,你可以使用dojo/data/ObjectStore

+0

謝謝!這正是我需要的。 –