спасибо, что прочитали меня:)
Я пытаюсь создать выпадающий компонент с угловым.Я запускаю выпадающий список из диапазона и удаляю его из директивы (clickOutOf).У меня две проблемы:
, когда я запускаю раскрывающийся список, он создается и запускается следующая директива clickOutOf.Таким образом, мое раскрывающееся меню не появляется, потому что моя кнопка находится вне моего раскрывающегося списка.
Когда появляется мое раскрывающееся меню, я не могу проверить, является ли цель ВХОДОМ или ВЫХОДОМ из моего раскрывающегося списка.Моя директива всегда «думает», что моя цель вне моего выпадающего списка.И так, он удаляется, когда я щелкаю в любом месте.
Вот ссылка на стек стека: https://stackblitz.com/edit/angular-nvzwjl Если вы нажмете на кнопку, появится выпадающий список
Чтобы увидеть первую проблему, просто перейдите в dropdown / dropdown.component.ts к функции close()
и раскомментируйте this.active = false;
=> нажмите на кнопку, выпадающий список не появляется ... (Я думаю, это потому, что он появляетсяно только после этого он удаляется моей директивой ... потому что мой диапазон не относится к моему раскрывающемуся списку ... Идея исправить это?)
ОБНОВЛЕНИЕ: Я нашел решение, просто добавив этот код в раскрывающийся компонент:
openDropdwon()
{
setTimeout(() => this.active = true);
}
Но я не очень доволен ... Не думаю, что это хорошая практика, и я думаю, что есть лучшее решение.Давайте обсудим, есть ли у вас adea:)
Чтобы увидеть вторую проблему, просто измените this.active = false
в конструкторе на this.active = true
.Мы видим, что раскрывающийся список появляется автоматически, но всегда исчезает (даже когда мы нажимаем на раскрывающийся список).Я думаю, это из-за * ngFor, который воссоздает компоненты перед проверкой, содержит ли блок цель ... Но я не знаю, как я могу это изменить ... Кто-то может мне помочь?
Я новичок в angular, мне очень нужна помощь благодаря вам;)