Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 22.04.2014, 13:24
Новичок на форуме
Отправить личное сообщение для hopest Посмотреть профиль Найти все сообщения от hopest
 
Регистрация: 29.10.2013
Сообщений: 8

Как правильно отыскать узел в модели дерева?
Есть дерево:

$scope.roleList1 = [
        { "roleName" : "User", "roleId" : "role1", "children" : [
          { "roleName" : "subUser1", "roleId" : "role11", "children" : [] },
          { "roleName" : "subUser2", "roleId" : "role12", "children" : [
            { "roleName" : "subUser2-1", "roleId" : "role121", "children" : [
              { "roleName" : "subUser2-1-1", "roleId" : "role1211", "children" : [] },
              { "roleName" : "subUser2-1-2", "roleId" : "role1212", "children" : [] }
            ]}
          ]}
        ]},

        { "roleName" : "Admin", "roleId" : "role2", "children" : [] },

        { "roleName" : "Guest", "roleId" : "role3", "children" : [] }
      ];


Мне надо отыскать узел
{ "roleName" : "subUser2-1-2", "roleId" : "role1212", "children" : [] }

и сделать например его активным
Ответить с цитированием
  #2 (permalink)  
Старый 22.04.2014, 13:50
Аватар для FireVolkhov
Аспирант
Отправить личное сообщение для FireVolkhov Посмотреть профиль Найти все сообщения от FireVolkhov
 
Регистрация: 17.04.2013
Сообщений: 88

1. Как найти? По рекурсии проверяешь каждый элемент Рекурсия, стек
2. Как выделить? Найдешь ответ в исходниках на 85 строке гит angular.treeview

Последний раз редактировалось FireVolkhov, 22.04.2014 в 13:56.
Ответить с цитированием
  #3 (permalink)  
Старый 22.04.2014, 14:03
Аватар для nerv_
junior
Отправить личное сообщение для nerv_ Посмотреть профиль Найти все сообщения от nerv_
 
Регистрация: 29.11.2011
Сообщений: 3,924

Сообщение от FireVolkhov
Найдешь ответ в исходниках на 85 строке
можно ссылку давать на строку https://github.com/eu81273/angular.t...reeview.js#L85
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук

Последний раз редактировалось nerv_, 22.04.2014 в 14:07.
Ответить с цитированием
  #4 (permalink)  
Старый 22.04.2014, 14:28
Аватар для Tek
Tek Tek вне форума
Профессор
Отправить личное сообщение для Tek Посмотреть профиль Найти все сообщения от Tek
 
Регистрация: 22.02.2012
Сообщений: 212

Сообщение от FireVolkhov
1. Как найти? По рекурсии проверяешь каждый элемент Рекурсия, стек
Зачем рекурсия? есть же underscore.js и метод find
Ответить с цитированием
  #5 (permalink)  
Старый 22.04.2014, 16:56
Новичок на форуме
Отправить личное сообщение для hopest Посмотреть профиль Найти все сообщения от hopest
 
Регистрация: 29.10.2013
Сообщений: 8

С кода всем сразу стало понятно что это angular.treeview.js

По самому выделению, мне известен узел, и я его выделяю
angular.forEach($scope.roleList, function(data, index){
                if(data.roleId == 'role2'){
                    $scope.mytree.selectNodeLabel(data);
                }
            });


А можно ли прямо так (не работает)
$scope.mytree.selectNodeLabel('{"roleName":"Guest","roleId":"role3","children":[{"roleName":"subGuest1","roleId":"role11","children":[]},{"roleName":"subGuest2","roleId":"role12","collapsed":true,"children":[{"roleName":"subGuest2-1","roleId":"role121","children":[{"roleName":"subGuest2-1-1","roleId":"role1211","children":[]},{"roleName":"subGuest2-1-2","roleId":"role1212","children":[]}]}]}],"selected":"selected"}');
Ответить с цитированием
  #6 (permalink)  
Старый 23.04.2014, 07:51
Аватар для FireVolkhov
Аспирант
Отправить личное сообщение для FireVolkhov Посмотреть профиль Найти все сообщения от FireVolkhov
 
Регистрация: 17.04.2013
Сообщений: 88

Сообщение от nerv_ Посмотреть сообщение
можно ссылку давать на строку https://github.com/eu81273/angular.t...reeview.js#L85
Удобно, запомню, спасибо.
Сообщение от Tek Посмотреть сообщение
Зачем рекурсия? есть же underscore.js и метод find
Можешь привести пример поиска объекта с roleId == "role1211" используя underscore.js
Сообщение от hopest Посмотреть сообщение
...
А можно ли прямо так (не работает)
$scope.mytree.selectNodeLabel('{"roleName": "Guest","roleId": "role3","children": [....],"selected": "selected"}');
В функции не предусмотрено такое использование, если тебе нужна именно такая логика, переопредели функцию $scope.mytree.selectNodeLabel на свою
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Событие click как правильно? piraids jQuery 9 20.08.2013 13:01
Пасоны, как правильно парсить параметры? megaupload Оффтопик 15 05.05.2013 14:44
filter(this,this) как правильно сделать? Smip jQuery 5 23.02.2013 03:07
Как правильно прицепить обработку события slowklg Events/DOM/Window 6 15.03.2012 16:20
Как правильно оформить Send() Алекс97 AJAX и COMET 20 30.10.2008 19:19