Angular Material拖放+滚动

时间:2020-04-21 09:21:30

标签: angular angular-material

我使用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>

1 个答案:

答案 0 :(得分:0)

您可以简单地将 cdkScrollable 添加到您想要滚动的 HTML 元素中。