Я отображаю список сообщений, используя *ngFor
, и хочу применить класс css к элементам, добавленным в коллекцию. после , список был изначально обработан.
т.е.Не нужно применять класс при первоначальной загрузке представления, но только тогда, когда коллекция messages
получает новый элемент.
Источник этой коллекции - наблюдаемый из службы, которая может измениться в любое время.
<div *ngFor="let message of thread.messages">
<div [class.fade-in-text]="threadWasLoaded">
{{ message.text }}
</div>
</div>
Я думал, что просто установлю переменную после того, как узнаю, что поток загружен, но это не сработало.Я пытался подписаться на наблюдаемое в основном на каждом хуке жизненного цикла Angluar.
В результате либо класс css всегда применяется ко всем элементам списка, либо я получаю следующую ошибку:
Ошибка: ExpressionChangedAfterItHasBeenCheckedError: Выражение изменилось после его проверки.
this.thread$ =
this.storeQuery.getThreadWithMessages(this.threadId)
.pipe(
map(t => this.thread = new Thread(t)),
tap(t => this.threadWasLoaded = true)
);
Возможно, я задаю не тот вопрос полностью.Пожалуйста, дайте мне знать, если мой общий подход вне базы.: -)