使用dojo.xhrGet检索的json文件在dijit中填充combobox
我在dojo上工作,我是一个初学者。好的,我想创建一个dojo ItemFileReadStore,使用ajax(dojo.xhrGet)从json文件检索的数据创建一个dojo ItemFileReadStore,它可以用来填充组合框。我试着去做,但没有成功!任何人都可以指导我如何调用json文件,然后使用数据填充组合框使用dojo.xhrGet检索的json文件在dijit中填充combobox,dojo,Dojo,我在dojo上工作,我是一个初学者。好的,我想创建一个dojo ItemFileReadStore,使用ajax(dojo.xhrGet)从json文件检索的数据创建一个dojo ItemFileReadStore,它可以用来填充组合框。我试着去做,但没有成功!任何人都可以指导我如何调用json文件,然后使用数据填充组合框 var _getPlacetypes = function(){ dojo.xhrGet({ url: "place_types.js
var _getPlacetypes = function(){
dojo.xhrGet({
url: "place_types.json",
handleAs: "json",
timeout: 5000,
load: function(response, args) {
console.log(response);
},
error: function(error_msg,details) {
PropertyMap.handleError(error_msg, details);
}
});
}
var myStore = new dojo.data.ItemFileReadStore({
jsId:data,
url: "place_types.json",
});
我用的是这样的东西!这条路对吗
谢谢
问候 首先定义数据的结构
var myData={
标识符:“id”,
标签:“我的标签”,
项目:[]
};
标识符必须唯一标识每一行
您必须使用ItemFileWriteStore(而不是ItemFileReadStore),因为您希望使用来自ajax的响应来填充它
var myStore=new dojo.data.ItemFileWriteStore({data:myData})代码>
假设response
是一个包含someList
的json,其中包含具有id
的对象,
在加载中执行此操作:
-
load: function(response, args) {
dojo.forEach(response.someList,
function(oneItem, i) {
myStore.newItem({oneItem.id : oneItem.id});
});
myStore.save();
}
通过这种方式,您可以从json响应填充数据存储
创建组合框时,应将存储设置为myStore
var comboBox = new ComboBox({
id: "stateSelect",
store: myStore,
}, "stateSelect");
为什么不使用a来简化代码呢
您可能有理由直接使用xhret,但我认为如果没有,您会发现JsonRestStore是您工作中的一大资产