我目前正在 Angular 应用程序中开发一项功能,其中涉及自定义多选下拉组件。目标是允许用户从此下拉列表中选择多个项目,然后通过拖放对这些选定的项目重新排序。
然而,我遇到了一些无法解决的挑战:
- 不正确的放置索引:每当拖放一个项目时,无论预期的放置位置如何,它最终都会被放置在列表的开头(索引 0)。
- 静态占位符:指示项目将被放置的位置的占位符不会随着拖动的项目一起移动,这使得用户很难理解项目在释放时将被放置在哪里。我花了相当多的时间尝试调试和修复这些问题,但没有成功。我正在向社区寻求任何可以帮助我克服这些障碍的建议、见解或解决方案。
这是我在 StackBlitz 上的项目的简化版本的链接,它演示了我面临的问题:StackBlitz 示例
任何有关如何解决这些问题的建议或指导将不胜感激。预先感谢您的时间和帮助!
在 StackBlitz 的示例中,您只是忘记将参数添加
cdkDropListOrientation="horizontal"
到cdkDropList
div 中。(请参阅文档中的示例)如果没有此参数,Angular 始终将拖动对象的位置解释为第一个,因为它需要一个垂直容器。