Dojo - Dijit.Tree - Обновление дерева - PullRequest
1 голос
/ 31 января 2012

Я создал простое дерево на основе TreeStoreModel, которое поддерживается ItemFileWriteStore. Я попытался обновить дерево, удалив и добавив элементы в магазин, как показано ниже, но не смог.

dojo.require("dojo.data.ItemFileWriteStore");
dojo.require("dijit.Tree");
dojo.addOnLoad(function () {
    var tmpData = [{
            "name" : "Dell",
            "type" : "business",
            "businessid" : "1",
            "projectid" : "1",
            "submenu" : [{
                    "name" : "OTP",
                    "type" : "product",
                    "productid" : "100"
                }
            ]
        }
    ];

    var tmpData1 = [{
            "name" : "Lenovo",
            "type" : "business",
            "businessid" : "1",
            "projectid" : "1",
            "submenu" : [{
                    "name" : "OTP",
                    "type" : "product",
                    "productid" : "100"
                }
            ]
        }
    ];
    var store = new dojo.data.ItemFileWriteStore({
            data : {
                label : 'name',
                items : tmpData
            }
        });

    var treeModel = new dijit.tree.TreeStoreModel({
            store : store,
            query : {
                type : 'business'
            },
            childrenAttrs : ["submenu"]

        });

    var divTestTree = dojo.create("div", null, dojo.body(), "first");
    var mytree = new dijit.Tree({
            model : treeModel
        },
            divTestTree);
    /* Tree is created at this point */

    /* Delete the item from the store,  for some reason tempData is being reset*/
    store.deleteItem(tmpData[0]); 
    /* save */
    store.save();
    /* Tree shows up no more at this point */

    /* Try adding new item to the store */
    store.newItem(tmpData1[0]);
    /* save */
    store.save();
    /*nothing happens! */   
});

Я последовал примеру здесь , я, должно быть, здесь упускаю что-то очень тривиальное. Пожалуйста, помогите.

Ответы [ 2 ]

0 голосов
/ 16 января 2013

Для всех, кто приходит сюда в поисках решения проблемы, «я подозреваю, что есть ошибка» - единственный ответ, который я получил на форуме, поэтому, возможно, это ошибка - goo.gl/M7xg7

0 голосов
/ 31 января 2012

взято с этой страницы

Как обновить дерево из магазина?

Это не поддерживается. Магазин должен уведомлять дерево о любых изменениях данных. В настоящее время это действительно поддерживается (из коробки) только dojo.data.ItemFileWriteStore, так как настройка источника dojo.data клиент-сервер, где сервер уведомляет клиента о каждом изменении данных, довольно сложна и выходит за рамки dojo, решение для клиентов.

Единственный способ обновить дерево - это заново нарисовать его: (

...