我使用Angular材质(Angular 9.1.2,Material 9.2.1)。
我里面有可滚动的容器和拖放列表(多个列表)。在Mateiral v9中,它们添加了功能来修复占位符和排序位置 withScrollableParents()。并且设置正确,但是...仅在对列表中的项目进行排序,拖放后才能使用。在comonent init之后的第一个事件中没有。知道我做错了什么吗?还是我应该为Angular材质创建问题?
@ViewChildren(CdkDropList) dropLists: QueryList<CdkDropList>;
protected setScrollContainer() {
if (this.dropLists) {
this.dropLists.forEach((x) => {
const htmlElement = x.element.nativeElement;
const scrolledElement = htmlElement.closest('.ps.ps--active-y') as HTMLElement;
x._dropListRef.withScrollableParents([scrolledElement]);
});
}
}
<div class="fields-list"
cdkDropList
#list2
(mouseenter)="setScrollContainer()"
[id]="addFiltersId(groupIndex, 'report-where')"
[cdkDropListConnectedTo]="dragAndDropListsFilters"
[cdkDropListData]="filtersGroup.filter"
(cdkDropListDropped)="dropFilter($event, 0)">
</div>
答案 0 :(得分:0)
您可以简单地将 cdkScrollable
添加到您想要滚动的 HTML 元素中。