Что я делаю
У меня есть компонент, который скрывает/показывает с помощью *ngIf
на основе простого булева. Когда компонент становится видимым, я хочу применить фокус к дочернему элементу внутри его шаблона.
Проблема
Если я переворачиваю логическое значение, компонент показывает правильно, но если я попытаюсь получить ссылку на дочерний элемент, используя this._elRef.nativeElement.querySelector("div#test")
, он просто вернется null
. Если я подожду несколько секунд, то тот же код вернет ссылку на элемент, как я ожидал.
Спекуляция
Я предполагаю, что после переброса Boolean angular проходит весь цикл рендеринга, чтобы показать вновь видимый компонент, и что это еще не закончилось к моменту, когда я применил querySelector()
в следующей строке.
Что я хотел бы знать
Так что мне интересно, как я могу быть уверен, что мой ngIf
вступил в силу, а элементы - в DOM, который нужно выбрать?
Есть ли такая вещь, как обратный вызов для ngIf
или может Я заставляю представление обновлять и получать обратный вызов из этого?
Надеюсь, это имеет смысл. Это был долгий день (долгая неделя), и я очень устал.
Спасибо всем
Если это помогает, я использую Angular2 v2.0.0-beta.15