dijit.Tree устанавливает пути JsonRestStore + ForestStoreModel

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

См. этот небольшой пример здесь: http://wasmonitor.com/dojotree.html.

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

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

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

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

Уже читал этот вопрос: diji.Tree + JsonRestStore - программный выбор узла с tree.set(путь, который похож, но у меня не работает...

Любые подсказки?

Спасибо !

Ричард


person rlevac    schedule 27.07.2013    source источник


Ответы (1)


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

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

or

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

Спасибо Сэму за указание на это по электронной почте!

person rlevac    schedule 29.07.2013