Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.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
Javascript dijit/form/FilteringSelect和dojox.data.XmlStore_Javascript_Dojo - Fatal编程技术网

Javascript dijit/form/FilteringSelect和dojox.data.XmlStore

Javascript dijit/form/FilteringSelect和dojox.data.XmlStore,javascript,dojo,Javascript,Dojo,我对filteringSelect和使用dojox.data.XmlStore创建的存储有问题。 加载元素后,它将显示ID而不是标题(来自displayedValue) 我怎样才能解决这个问题?有解决办法吗? (也许我只有两只左手……) HTML文件: <!DOCTYPE html> <html > <head> <link rel="stylesheet" href="resources/js/dojo/dijit/them

我对filteringSelect和使用dojox.data.XmlStore创建的存储有问题。 加载元素后,它将显示ID而不是标题(来自displayedValue)

我怎样才能解决这个问题?有解决办法吗? (也许我只有两只左手……)

HTML文件:

<!DOCTYPE html>
<html >
    <head>

        <link rel="stylesheet" href="resources/js/dojo/dijit/themes/claro/claro.css">
        <script>dojoConfig = {parseOnLoad: true}</script>
        <script src='resources/js/dojo/dojo/dojo.js'></script>
        <script>
            dojo.require("dojox.data.XmlStore");
            var store = new dojox.data.XmlStore({url: "test.xml", rootItem: "states", keyAttribute:"id", label:"name"});
            require([
                "dojo/store/Memory", "dijit/form/FilteringSelect", "dojo/domReady!"
            ], function(Memory, FilteringSelect){

            var filteringSelect = new FilteringSelect({
                    id: "stateSelect",
                    name: "state",
                    displayedValue : "test",
                    store: store,
                    searchAttr: "name",
                    labelAttr:'name',
                    labelType: "text"
                }, "stateSelect").startup();
            });

        </script>
    </head>
    <body class="claro">

        <input id="stateSelect">

    </body>
</html>

dojoConfig={parseOnLoad:true}
require(“dojox.data.XmlStore”);
var store=new dojox.data.XmlStore({url:“test.xml”、rootItem:“states”、keyAttribute:“id”、label:“name”});
要求([
“dojo/store/Memory”、“dijit/form/FilteringSelect”、“dojo/domReady!”
],功能(存储器,过滤器选择){
var filteringSelect=新filteringSelect({
id:“stateSelect”,
名称:“国家”,
displayedValue:“测试”,
店:店,,
searchAttr:“名称”,
labelAttr:“名称”,
标签类型:“文本”
},“stateSelect”).startup();
});
“text.xml”文件:


3.
重要的
4.
同样重要
5.
测试
8.
渣滓

看起来您的根项目是问题的原因。您将rootItem指定为根文档节点,但rootItem用于指定核心项(要显示的项)

如果未提供rootItem,则XmlStore假定文档根元素下的标记是根项

因此,在您的情况下,rootItem应该是“state”而不是“states”

<?xml version="1.0" encoding="UTF-8"?>
<states>
    <state>
        <id>3</id>
        <name>important</name>
    </state>
    <state>
        <id>4</id>
        <name>also important</name>
    </state>
    <state>
        <id>5</id>
        <name>test</name>
    </state>
    <state>
        <id>8</id>
        <name>scumm</name>
    </state>
</states>