2011-05-23 109 views
0

我有一個dojo.xhrGet返回對象的正確數組:道場JSON選擇

<script type="text/javascript"> 

    dojo.require("dijit.form.FilteringSelect"); 
    dojo.require("dojo.data.ItemFileReadStore"); 

     dojo.addOnLoad(function() { 

      var name = dojo.byId("nafn"); 
      name.setAttribute("dojoType", "dijit.form.ComboBox"); 

      dojo.parser.parse(name.parent); 

      dojo.xhrGet({ 
       url: "http://localhost:8080/App/gots", 
       handleAs: "json", 

       load: function(data){ 
        dojo.byId("container").innerHTML = data; 
        dojo.parser.parse("container"); 

        console.log(data); 

        var store = new dojo.data.ItemFileReadStore({ data: data }); 

        console.log(store); 

        var filteringSelect = new dijit.form.ComboBox({ 
         id: "stateSelect", 
         name: "state", 
         value: "Search", 
         store: store, 
         searchAttr: "bondiuser" 
        }, 
        "nafn"); 

      }, 

      onError: function(err) { 
       console.log(err); 
      }, 
      headers:{"Accept":"application/json"} 
      }); 

     }); 
    </script> 

當我輸出到我的JavaScript控制檯,我可以看到我的對象,當我做:

console.log(data); 

ItemFileReadStore仍爲空爲什麼?

+0

您需要向我們顯示從服務器收到的'data'內容。如果它只是一個對象數組,那可能是你的錯誤:你給ItemFileReadStore的數據參數應該是一個帶有'{identifier:「id」,items:[{...},{...},...的對象。 。]},其中id是對象標識符的名稱。請參閱http://docs.dojocampus.org/dojo/data/ItemFileReadStore#general-structure – Frode 2011-05-23 11:55:13

+0

錯誤必須來自此。這裏是json字符串:{「bondiuser」:「gilles」,「dna」:null,「eigandi」:null,「fadir」:null,「faedingardagur」:1306972800000,「fang」:null,「harafar」 Lodinn」, 「ID」:1, 「KYN」: 「Hundur」, 「litur」: 「Hvitur」, 「modir」:空, 「nafn」: 「Bjartur」, 「ormerki」: 「123123」, 「sfiNumer」 :「12313123」,「stofnskra」:false,「version」:0} – gpasse 2011-05-23 12:05:55

+0

這只是一個對象。你的服務器不應該返回一個對象數組嗎? – Frode 2011-05-23 12:33:42

回答

1

ItemFileReadStore的數據參數應該是具有屬性identifieritems的對象。

var store = new dojo.data.ItemFileReadStore({ data: { 
    identifier: "bondiuser", 
    items: data 
}}); 

這假定data是對象的所有這些都至少一個屬性命名bondiuser的陣列。