2013-07-27 2 views
0

У меня есть дерево JsonRestStore + ForestStoreModel, и он работает нормально, но когда я пытаюсь получить доступ к узлу напрямую с помощью функции tree.set ('paths', ...), это не Работа.dijit.Tree set paths JsonRestStore + ForestStoreModel

Пожалуйста, обратитесь к этой небольшой пример здесь: http://wasmonitor.com/dojotree.html

Если нажать на кнопку, она должна расширить веб-серверов и выберите web1, но это не ... Это мой вопрос.

Мое дерево без корней, и я знаю, что у ForestStoreModel есть rootId по умолчанию из $ root $, если ни один не указан. Поэтому я пытаюсь получить доступ к узлу с помощью этого кода:

var stree = dijit.byId("statTree"); 
    stree.set("paths", [ "$root$", "WebServers", "web1" ]); 

Но он никогда не открывается.

Уже прочитал этот вопрос: diji.Tree + JsonRestStore - selecting node programmatically with tree.set("path", который похож, но это не работает для меня ...

Любые намеки?

Спасибо!

Ричард

ответ

0

обнаружил, что пути и путей настройки были совершенно разные. path принимает единственный путь в виде массива, а пути принимают массив массивов. Кроме того, я полагался на $ root $ как rootId по умолчанию, но чтобы заставить его работать, мне пришлось описать rootId в декларации ForestStoreModel. После этого, правильный синтаксис будет:

var stree = dijit.byId("statTree"); 
    stree.set("path", [ "statTree", "WebServers", "web1" ]); 

или

var stree = dijit.byId("statTree"); 
    stree.set("paths", [[ "statTree", "WebServers", "web1" ]]); 

Благодаря Сэма указывая, что мне по электронной почте!