Как Вы очищаете дерево в ExtJs?

Если вывод drawContours содержит много сегментов (я имею в виду более двух, то есть правильный вывод), я бы попытался уменьшить эпсилон в ок. ]

7
задан blong 19 June 2012 в 03:18
поделиться

5 ответов

Из замечательного блога Сакэ гуру ExtJS.

while (node.firstChild) {
    node.removeChild(node.firstChild);
}

http://blog.extjs.eu/know-how/how-to-remove-all-children-of-a-tree-node/

6
ответ дан 6 December 2019 в 15:36
поделиться

В моем случае мое дерево Расширения имеет скрытый корневой узел типа AsyncTreeNode. Если я хочу очистить дерево и повторно заполнить с сервера, это довольно просто:

tree.getRootNode().reload();
3
ответ дан 6 December 2019 в 15:36
поделиться
if (tree) { var delNode; while (delNode = tree.root.childNodes[0]) tree.root.removeChild(delNode); }

Я не знаю Расширение, но я предполагаю, что у них есть абстракция DOM, которая могла бы сделать это легче. Эквивалент в Прототипе был бы чем-то как:

tree.root.immediateDescendants().invoke('remove'); // or
tree.root.select('> *').invoke('remove');

Если tree.root относится к объекту коллекции, а не корневому узлу DOM дерева, но одалживает имена методов API DOM? Это кажется действительно маловероятным, специально для современной библиотеки JS.

-1
ответ дан 6 December 2019 в 15:36
поделиться

Я наконец нашел ответ на их форумах. Поскольку любой заинтересовал его, здесь:

if (tree)
{
    var delNode;
    while (delNode = tree.root.childNodes[0])
        tree.root.removeChild(delNode);
}
1
ответ дан 6 December 2019 в 15:36
поделиться

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

listeners: {
   collapsenode: function(node){
   node.loaded = false;
},
0
ответ дан 6 December 2019 в 15:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: