Я новичок в додзё и развитии весны. Я пытаюсь заполнить виджет Tree, используя ответ json от контроллера spring-mvc. Я внимательно слежу за примерами с сайта dojocampus.Почему мой dijit.Tree не заселен из источника json?
Во-первых, если я использую локальный источник данных работает нормально:
<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 I может видеть, что ответ json выглядит правильно загруженным. Это выглядит так:
{"identifier": "rid", "items": {"rid": "b1c", "name": "Test Parent", "children": [{"rid" : «1c4», «name»: «Test Child 1», «children»: []}, {«rid»: «ee6», «name»: «Test Child 2», «children»: []} ]}, "метка": "имя"}
Существует ошибка в Firebug:
"dijit.tree.TreeStoreModel: запрос {" имя ":" Тест родитель "} возвратил 0 пунктов, но должны возвращает ровно один пункт "
Похоже, что ItemFileReadStore неправильно загружен. Кто-нибудь знает, что я делаю неправильно? Я отрывал свои волосы в течение нескольких дней, пытаясь заставить это работать, поэтому любая помощь очень ценится.
Cheers, Rod.