Живой пример: https://angular-txvcna.stackblitz.io/ (Код).
У меня есть компонент «чат», и я хочу, чтобы div прокручивался вниз каждый раз, когда добавляется сообщение.
Я добавляю новое сообщение, помещая элемент в массив (this.messages.push(message)
) и пытаясь после этого прокрутить вниз вправо. Похоже, что операция прокрутки this.chatboxBody.nativeElement.scrollTop = this.chatboxBody.nativeElement.scrollHeight;
находится перед хуками жизненного цикла angular, потому что scrollHeight
имеет более старое значение высоты при выполнении.
На данный момент я использую setTimeout
, чтобы исправить это, но это действительно похоже на ярлык. Как я могу это исправить? (В идеале — как-то подписаться на хук, обновляющий дочерний компонент)