我有一个包含多个元素的 Angular Material 列表,其中可以选择其中之一。
当我加载此列表时,我想将列表向上滚动到所选元素,以使其更加可见。有什么选择吗?
我正在考虑在 ngOnInit 中检查是否选择了项目,但我真的不知道如何将此列表滚动到该项目。
注意:不应滚动整个页面,只应滚动列表中的元素。
组件.html
<mat-nav-list>
<mat-list-item *ngFor="let item of items" (click)="itemClick(item)"
[ngClass]="item.selectedClass">
{{item.someValue}}
</mat-list-item>
</mat-nav-list>
Run Code Online (Sandbox Code Playgroud)
组件.ts
private itemClick(item: Item): Observable<any> {
if (item) {
this.something = item;
this.items.forEach(item => {
if (item && item.name === item.name) {
item["selectedClass"] = "item-selected";
} else {
item["selectedClass"] = undefined;
}
});
} else {
this.something = null;
this.items.forEach(item => {
item["selectedClass"] = undefined;
});
}
return of(null);
}
Run Code Online (Sandbox Code Playgroud)