Я новичок в додзё и весеннем развитии. Я пытаюсь заполнить виджет Tree, используя ответ json от контроллера spring-mvc. Я очень внимательно слежу за примерами с сайта dojocampus.
Во-первых, если я использую локальный источник данных, он работает нормально:
<script type="text/javascript">
dojo.require("dojo.data.ItemFileReadStore");
dojo.require("dijit.Tree");
dojo.addOnLoad(function() {
var rawdata = [{"rid":"b1c","name":"Test Parent","children":[{"rid":"1c4","name":"Test Child 1","children":[]},{"rid":"ee6","name":"Test Child 2","children":[]}]}];
var store = new dojo.data.ItemFileReadStore({
data: {
identifier: 'rid',
label: 'name',
items: rawdata
}
});
var treeModel = new dijit.tree.TreeStoreModel({
store: store,
query: {name: 'Test Parent'},
childrenAttrs: ["children"]
});
new dijit.Tree({
model: treeModel
},
"treeOne");
});
</script>
<div id="treeOne">
</div>
Но если я использую мой JSON-URL, дерево не появится:
<script type="text/javascript">
dojo.require("dojo.data.ItemFileReadStore");
dojo.require("dijit.Tree");
dojo.addOnLoad(function() {
var store = new dojo.data.ItemFileReadStore({
url: "/Demo2/glossaryobjects/categories.json"
});
var treeModel = new dijit.tree.TreeStoreModel({
store: store,
query: {name: 'Test Parent'},
childrenAttrs: ["children"]
});
new dijit.Tree({
model: treeModel
},
"treeOne");
});
</script>
<div id="treeOne">
</div>
Когда я отлаживаю с Firebug, я вижу, что ответ json, кажется, загружен правильно. Это выглядит так:
{"identifier": "rid", "items": {"rid": "b1c", "name": "Test Parent",
"children": [{"rid": "1c4", "name": "Test Child 1", "children": []},
{"rid": "ee6", "name": "Test Child 2", "children": []}]}, "label": "name"}
В Firebug есть ошибка:
"dijit.tree.TreeStoreModel: query {" name ":" Test Parent "} вернул 0 элементов, но должен вернуть ровно один элемент"
Похоже, что ItemFileReadStore загружен неправильно. Кто-нибудь знает, что я делаю не так? Я рвал на себе волосы несколько дней, пытаясь заставить это работать, поэтому любая помощь очень ценится.
Ура,
Род.