На сайте DTK теперь есть учебное пособие, которое, по-видимому, в значительной степени охватывает эту тему.
http://staging.dojotoolkit.org/documentation/tutorials/1.6/store_driven_tree/
Однако, поскольку я знаю, что связывание чего-либо без ответа считается плохой практикой, общая идея заключается в том, что вместо использования dojo.data.ObjectStore
для обтекания, а затем, возможно, протолкнув его через ForestStoreModel
, вы можете просто добавьте в свой dojo.store
магазин, чтобы добавить методы, которые будет искать Дерево. Вот простой пример из учебника:
usGov = new dojo.store.JsonRest({
target:"data/",
mayHaveChildren: function(object){
// see if it has a children property
return "children" in object;
},
getChildren: function(object, onComplete, onError){
// retrieve the full copy of the object
this.get(object.id).then(function(fullObject){
// copy to the original object so it has the children array as well.
object.children = fullObject.children;
// now that full object, we should have an array of children
onComplete(fullObject.children);
}, onError);
},
getRoot: function(onItem, onError){
// get the root object, we will do a get() and callback the result
this.get("root").then(onItem, onError);
},
getLabel: function(object){
// just get the name
return object.name;
}
});
Стоит отметить, что в этом случае мы делаем некоторые предположения о том, как выглядят данные. Вам нужно знать, как ваши дети соотносят и настраивают методы, описанные ниже, для этой цели, но, надеюсь, довольно ясно, как это сделать для себя.
Вы также можете пока просто придерживаться dojo.data
API, но этот подход определенно выглядит более легким. Он берет пару слоев из стека, и работа с настройкой магазина dojo.store
становится намного проще.