Я искал в Google, но без помощи.
Я хотел бы знать, как связать дерево с моделью или магазином, я даже не знаю, какое из них больше подходит (http://manual.qooxdoo.org/1.6.x/pages/data_binding/data_binding.html).
У меня есть служба , которая извлекает данные из базы данных и сохраняет данные в своем хранилище .
this.__store = new qx.data.store.Json(url, delegate);
this.__store.bind("model", this, "testData");
после обновления службы отправитсобытие, и я слушаю его:
service.addListener("changeTestData", function(e) {
this.debug(qx.dev.Debug.debugProperties(e.getData()));
var tree = main.tree;
}, this);
Я не знаю, является ли это правильным способом. Я полагаю, нет, но я не знаю, как связать модель / сервис /сохранить в дереве, чтобы работать.
Мое дерево:
var tree = this.tree = new qx.ui.tree.Tree().set({
width : 200,
height : 400
});
спасибо
ОБНОВЛЕНИЕ:
Все еще не работает .. этониже показан только один элемент без метки, и я не могу открыть его, чтобы увидеть его дочерний элемент. error: "Uncaught qx.core.AssertionError: error" Мой формат данных:
[{_id:3423, title:"asdad", kids: []}] and so on...
-index(0):
-- title: abc
-- _id: 4f4cea3e4b58dffc04000001
-- kids:
-index(1):
-- title: abc
-- _id: 4f4cea3e4b58dffc04000002
-- kids: ---index(0):
---- title: abc
---- _id: 4f4cea3e4b58dffc04000001
---- kids:
Это мой код:
var url = "http://127.0.0.1:8000/";
var delegate = {
configureRequest : function(request) {
request.set({
"method" : "POST",
"requestData" : {
"serviceToUseOnServer" : "articles"
}
});
},
};
var status = new qx.ui.basic.Label("Loading...");
var store = new qx.data.store.Json(url, delegate);
store.bind("state", status, "value");
var tree = new qx.ui.tree.Tree().set({
width : 200,
height : 400
});
var controller = new qx.data.controller.Tree(null, tree, "kids", "title");
store.bind("model", controller, "model");
main.add(tree, {top: 50, left: 200});
main.add(status, {top: 50, right: 200});
store.addListener("loaded", function(e) {
// now I can't even reach this point. the error spawns and this is not called..
debugger;
var root = tree.getRoot();
// tree.getRoot().setOpen(true);
// gives me an error because root is null
this.debug(qx.dev.Debug.debugProperties(e.getData()));
}, this);