#json #dojo
#json #dojo
Вопрос:
У меня есть dojo.xhrGet
, которые возвращают правильный массив object :
<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
почему остается пустым?
Комментарии:
1. Вам нужно показать нам содержимое
data
, полученное с сервера. Если это просто массив объектов, это, вероятно, ваша ошибка: параметр данных, который вы предоставляете ItemFileReadStore, должен быть объектом с{identifier: "id", items: [{...}, {...}, ...]}
, где id — это имя идентификатора ваших объектов. Смотрите docs.dojocampus.org/dojo/data /…2. Должно быть, из-за этого произошла ошибка. Вот строка json: {«bondiuser»:»gilles»,»dna»:null,»eigandi»:null,»fadir»:null,»faedingardagur»:1306972800000,»fang»:null,»harafar»:»Lodinn»,»id»:1,»kyn»:»Hundur»,»litur»:»Hvitur»,»modir»:null,»nafn»:»Bjartur»,»ormerki»:»123123″,»sfiNumer»:»12313123″,»stofnskra»:false,»version»:0}
3. Это всего лишь один объект. Разве ваш сервер не должен возвращать массив объектов?
Ответ №1:
Параметром данных для ItemFileReadStore должен быть объект со свойствами identifier
и items
.
var store = new dojo.data.ItemFileReadStore( { data: {
identifier: "bondiuser",
items: data
}});
Предполагается, что data
имеется массив объектов, каждый из которых имеет по крайней мере свойство с именем bondiuser
.