Существует ли простой способ запросить дочерние элементы узла?

Вы можете получить доступ к событию, в моем случае.

HTML:

<countdown [config]="config" (event)="onEvent($event)">

Машинопись:

onEvent($event): void {
    let timeLeft = $event.left;
}

С событием уведомления должно быть то же самое Таким образом, вы можете получить доступ без ошибок, будучи частным

9
задан Metaphile 14 October 2012 в 16:02
поделиться

3 ответа

Вы читали статью, которую Вы отправили? Это находится под заголовком, "Находят Непосредственных Подчиненных Узла"

SELECT node.name, (COUNT(parent.name) - (sub_tree.depth + 1)) AS depth
FROM nested_category AS node,
    nested_category AS parent,
    nested_category AS sub_parent,
    (
        SELECT node.name, (COUNT(parent.name) - 1) AS depth
        FROM nested_category AS node,
        nested_category AS parent
        WHERE node.lft BETWEEN parent.lft AND parent.rgt
        AND node.name = 'PORTABLE ELECTRONICS'
        GROUP BY node.name
        ORDER BY node.lft
    )AS sub_tree
WHERE node.lft BETWEEN parent.lft AND parent.rgt
    AND node.lft BETWEEN sub_parent.lft AND sub_parent.rgt
    AND sub_parent.name = sub_tree.name
GROUP BY node.name
HAVING depth <= 1
ORDER BY node.lft;

Однако то, что я делаю (это обманывает), я объединил вложенный набор со списками смежности - я встраиваю "parent_id" в таблицу, таким образом, я могу легко попросить детей узла.

9
ответ дан 4 December 2019 в 10:05
поделиться

Это кажется мне, это должно быть легко выполнимо без подзапросов или родительского дублирования столбца! Например, учитывая левого и правого родителя уже известны:

SELECT child.id
FROM nodes AS child
LEFT JOIN nodes AS ancestor ON
    ancestor.left BETWEEN @parentleft+1 AND @parentright-1 AND
    child.left BETWEEN ancestor.left+1 AND ancestor.right-1
WHERE
    child.left BETWEEN @parentleft+1 AND @parentright-1 AND
    ancestor.id IS NULL

Таким образом, “от всех потомков рассматриваемого узла выберите без предка между собой и узлом”.

7
ответ дан 4 December 2019 в 10:05
поделиться

Можно обернуть каждую ссылку прослушивателя в WeakReference , а затем использовать SunOnWriteArraySet .

-121--2711746-

Фраза - это подстановочный символ, означающий, что класс BineySeeyTree может принимать:
a. параметр типа (Т), который расширяет Сопоставимый
b. , а также может принимать подтип (S), чей родительский элемент расширяет Сопоставимый

Конструкция расширяет утилиту класса BineySeeyTree до тип (ы), реализующий Сопоставимый и его подтипы.

Ниже приведен фрагмент кода, демонстрирующий следующее:

// Below declaration of Helper class doesn't uses the wildcard super
class Helper<T extends Comparable<T>> {
     // some helper methods
}

abstract class Animal implements Comparable<Animal> {
    public int compareTo(final Animal o) {
       // implementation ...           
    }
    // other abstract methods
}

class Mammal extends Animal {
    // implement abstract methods
}

При приведенном выше объявлении оператор Helper < Животное > x = new Helper < Животное > () работает нормально.
Но утверждение: Helper < Mammal > x = new Helper < Mammal > () дает параметр типа ошибки компиляции
Mammal не находится в пределах его границы
(версия компилятора javac 1.5.0_06)

Когда объявление класса Helper изменяется на следующую форму:

class Helper<T extends Comparable<? super T>> {
     // some helper methods
}

тогда оператор Helper < Mammal > x = new Helper < Mammal > () не дает ошибки компилятора.

Таким образом, использование подстановочных знаков максимизирует полезность класса.

-121--4132689-

ЭТО ЛУЧШЕ И МЕНЬШЕ

Пользователь «bobince» почти имел его. Я понял это и получил его, чтобы работать на меня, потому что у меня немного больше опыта MySQL, чем у большинства. Однако я понимаю, почему ответ Бобинса может напугать людей. Сначала необходимо выбрать parent_left и parent_right в переменные mysql.

В двух следующих запросах предполагается, что таблица имеет имя дерево , левый столбец - lft , правый столбец - rgt , а первичный ключ - id . Измените эти значения в соответствии с вашими потребностями. Также изучите первый оператор select. Вы увидите, что я ищу непосредственных потомков узла 5. Измените число 5, чтобы искать потомков любого узла.

Я лично думаю, что это более элегантный, сексуальный и более эффективный запрос, чем другие представленные до сих пор.

SELECT `lft`, `rgt` INTO @parent_left, @parent_right FROM efm_files WHERE `id` = 5;
SELECT `child`.`id`
FROM `tree` AS `child`
LEFT JOIN `tree` AS `ancestor` ON
    `ancestor`.`lft` BETWEEN @parent_left+1 AND @parent_right-1 AND
    `child`.`lft` BETWEEN `ancestor`.`lft`+1 AND `ancestor`.`rgt`-1
WHERE
    `child`.`lft` BETWEEN @parent_left+1 AND @parent_right-1 AND
    `ancestor`.`id` IS NULL
5
ответ дан 4 December 2019 в 10:05
поделиться
Другие вопросы по тегам:

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