实时示例:https://angular-txvcna.stackblitz.io/(Code)。
我有一个“聊天”组件,我想让div在每次添加消息时滚动到底部。
我通过将项目推送到数组(this.messages.push(message)
)并在此之后尝试滚动到底部来添加新消息。滚动操作this.chatboxBody.nativeElement.scrollTop = this.chatboxBody.nativeElement.scrollHeight;
似乎在角度的生命周期挂钩之前,因为scrollHeight
执行时具有较高的高度值。
此刻,我使用setTimeout
对其进行了修复,但确实感觉很快捷。我该如何解决? (理想情况下-以某种方式订阅更新子组件的钩子)
答案 0 :(得分:1)
我有两个主意:
private _message: VivrMessage;
@Input()
set message(val: VivrMessage){
if (val){
this._message = val;
this.handleScrolling();
}
}