2017-01-06 4 views
0

filteringSelectとdojox.data.XmlStoreで作成されたストアに問題があります。 要素がロードされた後、タイトルの代わりに(displayedValueからの)IDが表示されます。dijit/form/FilteringSelect and dojox.data.XmlStore

After the page is loaded - The unexpected result

私はこれをどのように修正することができますか?回避策はありますか? (多分私は2本のだけ左の手を持っている...)

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> 

"text.xml":

<?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> 

答えて

0

それはあるrootItemあなたのように見えます問題の原因(表示する項目)はrootItemが提供されていない場合は、XmlStoreは、文書のルート要素下タグをすることを前提としてい

をあなたはルート文書ノードとしてrootItemを指定しているが、rootItemは、あなたのコアの項目を指定するためのものですルート項目。

あなたの場合、rootItemは「状態」にする必要があります。「状態」