Angular 如何滚动到角度中的元素?
我使用Angular>=9,我有一个HostListener来监听Angular 如何滚动到角度中的元素?,angular,Angular,我使用Angular>=9,我有一个HostListener来监听arrowdown和arrowup事件。请参见下面的简化代码: @HostListener('window:keydown.arrowup', ['$event']) onArrowDown($event: KeyboardEvent) { this.selected--; } @HostListener('window:keydown.arrowdown', ['$event']) onArrowDown($event
arrowdown
和arrowup
事件。请参见下面的简化代码:
@HostListener('window:keydown.arrowup', ['$event'])
onArrowDown($event: KeyboardEvent) {
this.selected--;
}
@HostListener('window:keydown.arrowdown', ['$event'])
onArrowDown($event: KeyboardEvent) {
this.selected++;
}
在HTML模板中,我有一个列表,并检查selected==I
,以指示这是我刚刚选择的元素。但是,如果列表太长,箭头向下
当然不会滚动到该元素
IsSelected:{{selected==i}
由于
selected++
或selected--
会在之后触发UI更新,因此我不能立即使用scrollTo
功能。这个问题的正确解决方案是什么?我认为您的问题是UI更新导致ngFor
重新创建DOM。如果使用trackBy
功能,如:
IsSelected:{{selected==i}
函数trackByFunction(对象:?){
return object.id;//或唯一标识对象的内容。
}
那么您应该能够在更改所选
的值后立即滚动
为什么不能在更改所选的值后立即滚动?所有元素都在DOM中,不是吗?