Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 角度材质cdk虚拟滚动视口在内容更新时未正确滚动_Angular_Angular Material - Fatal编程技术网

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});
});
}