很遗憾,我找不到常见问题的解决方案。
这是代码https://stackblitz.com/edit/angular-ygwaxs
的链接我有这种情况:在服务器上,我得到了一个json树结构(在示例中,组件内部直接进行了简化)
有空节点,但是每个人都声明了子数组。
我试图在html级别ng-template和ng-container上在componente内部管理这种表示形式。
问题是我需要使用拖放功能对节点进行排序。
具体来说,每个部分都可以是孩子或父母,因此,每个部分都可以拖放。
我也尝试使用Angular Material 8 CDK拖放(https://material.angular.io/cdk/drag-drop/overview)和使用拖放API的香草Javascript(https://developer.mozilla.org/…/…/ API / HTML / Drag_and_Drop_API来实现它,但是,如果在第一种情况下具有嵌套拖放的事实无助于解决方案,在第二种情况下,我已经进行了测试,但是在Angular组件内部,似乎没有绑定拖放的事件被接受;当我尝试将一个区域拖放到标签放置区域中时,光标会发生空投变化。
有人可以帮助我吗?
答案 0 :(得分:5)
最近,我在树状结构中嵌套拖放/排序项目时也遇到了问题。
对我来说,解决方案是通过cdkDropListConnectedTo链接不同的cdkDropList,并通过cdkDrag项上的cdkDragMoved事件获取目标放置位置。
演示:https://stackblitz.com/edit/angular-cdk-nested-drag-drop-tree-structure
答案 1 :(得分:0)
您可以使用可排序的js嵌套排序:https://sortablejs.github.io/Sortable/#nested
还有一个可排序js的角度实现: https://github.com/SortableJS/ngx-sortablejs
答案 2 :(得分:-1)
有一篇关于可排序、嵌套、拖放列表的文章。 它还包括一个仅使用 @angular/cdk
的有效 stackblitz 演示https://sienakasa.medium.com/angular-cdk-nested-drag-and-drop-d849365a7ca9