Angular 角度材质cdk虚拟滚动视口在内容更新时未正确滚动
我正在使用Angular 角度材质cdk虚拟滚动视口在内容更新时未正确滚动,angular,angular-material,Angular,Angular Material,我正在使用cdk虚拟滚动视口来呈现聊天室中的消息列表。消息存储在字符串数组中,每次收到消息时都会更新该数组 我的问题是,在更新内容后立即在视口上使用scrollTo({bottom:0})时,它只会滚动到视口中的最后一个项目 如果将scrollTo()函数放置在延迟为0的setTimeout内,则视口将正确地滚动到底部。但是,问题是页面上的内容更新和滚动之间有一点延迟。这会导致视口和滚动条在每条新消息上不规则地跳转到底部,这在视觉上非常不协调 有没有办法延迟页面更新,直到视口重新呈现并正确滚动到
cdk虚拟滚动视口
来呈现聊天室中的消息列表。消息存储在字符串数组中,每次收到消息时都会更新该数组
我的问题是,在更新内容后立即在视口上使用scrollTo({bottom:0})
时,它只会滚动到视口中的最后一个项目
如果将scrollTo()
函数放置在延迟为0
的setTimeout
内,则视口将正确地滚动到底部。但是,问题是页面上的内容更新和滚动之间有一点延迟。这会导致视口和滚动条在每条新消息上不规则地跳转到底部,这在视觉上非常不协调
有没有办法延迟页面更新,直到视口重新呈现并正确滚动到底部
视口:
{{message}}
相关部件代码:
消息:字符串[]=[];
@ViewChild('messageViewport')messageViewport:CdkVirtualScrollViewport;
恩戈尼尼特(){
this.chatService.connect().subscribe((消息)=>{
this.messages=消息;
this.messageViewport.scrollTo({bottom:0});
});
}