Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用dojo.xhrGet检索的json文件在dijit中填充combobox_Dojo - Fatal编程技术网

使用dojo.xhrGet检索的json文件在dijit中填充combobox

使用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

我在dojo上工作,我是一个初学者。好的,我想创建一个dojo ItemFileReadStore,使用ajax(dojo.xhrGet)从json文件检索的数据创建一个dojo ItemFileReadStore,它可以用来填充组合框。我试着去做,但没有成功!任何人都可以指导我如何调用json文件,然后使用数据填充组合框

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是您工作中的一大资产