2010-09-24 4 views
0

Я создаю додзё дерево на Mozilla 3 программно следующимдодзё проблема обслуживания дерева

var store = new dojo.data.ItemFileReadStore({ 
"id": "treeSt", 
"data": _treeData 
    } 
); 
var model = new dijit.tree.ForestStoreModel({ 
"jsId": "tModel", 
"store": store, 
"rootId": "tems", 
"rootLabel": "TEMS", 
"query": { 

"типа": "корень" }, "childrenAttr": [ "дети"] });

var tree = new dijit.Tree({ 
"id": treeId, 
"model": model, 
"openOnClick": false, 
"onClick": setSelectedNode 
    } 
); 

Everytime узел должен быть добавлен к дереву, я обновлю свою глобальную переменную _treeData, Destory и воссоздать дерево. _treeData имеет все данные json для дерева. Есть ли другой способ поддерживать древовидные данные без необходимости поддерживать глобальную переменную?

Кроме того, когда я пытаюсь сериализовать _treeData с помощью dojo.toJson(_treeData), я получаю сообщение об ошибке «Слишком много рекурсии» в консоли firebug. Есть ли другой способ сделать это?

Заранее благодарю вас за помощь.

+0

Аналогичный вопрос http://stackoverflow.com/questions/3838601/dojo-serialize-json-data – Kniganapolke

ответ

0

Вы можете установить атрибут 'url' на dojo.data.ItemFileReadStore и загрузить данные с сервера.

К refresh the store мы должны вызвать функцию fetch().

Если вы могли бы ItemFileWriteStore, вы можете использовать функцию newItem(), чтобы просто добавить только новый элемент вместо изменения всего хранилища.

Подробнее rgarding магазин доступен на http://www.dojotoolkit.org/reference-guide/quickstart/data/usingdatastores/faq.html

Надеется, что это помогает.

Смежные вопросы