Вызов метода после отрисовки DOM элемента и *ngIf - Angular
Необходимо вызвать функцию после отрисовки шаблона, который создаётся с помощью *ngIf
Как я понял, политика Angular такая, что не нужно завязывать методы на изменения чего-то в DOM, а нужно делать наоборот, т.е. если у меня есть подобный код:
public switch(): void {
this.isVisible = !this.isVisible;
// Тут необходимо выполнить какой-то код, поэтому сюда будем добавлять метод
}
Я должен добавить вызов метода после смены флага, который использует *ngIf
Тут у меня возникает следующая проблема: этот метод, который мне нужно добавить, взаимодействует с DOM шаблона, который ещё только построится в *ngIf. К примеру, он должен добавить какой-то класс к третьему элементу, а так как несмотря на то, что смена флага произошла, но сам DOM ещё не отрисован, то я не могу добавить именно к третьему элементу, ведь он ещё не отрисован.
Решения, которые я смог выдавить из себя:
- Использовать NgAfterViewInit - в таком случае всё действительно работает, но метод вызывается очень часто. Т.е. если это какой-нибудь выпадающий список, где при фокусе на элементы происходит его выделение, то метод будет вызываться при каждом смене элемента.
- Обернуть метод в setTimeout с параметром 0, тогда всё хорошо работает, но вызывается цепная реакция и код покрывается таймаутами.
Существует ли ещё способ разрешить данную ситуацию?