Angular拖放CDK无法在兄弟组件和嵌套组件之间拖动。
创始人
2024-10-29 19:31:19
0

在Angular中使用Angular拖放CDK库实现拖放功能时,确实存在兄弟组件和嵌套组件之间拖动的问题。这是因为Angular拖放CDK库的API仅支持在父子组件之间实现拖放。

要解决这个问题,可以使用自定义指令和事件触发器来实现跨兄弟组件和嵌套组件的拖放功能。

首先,创建一个自定义指令,用于标记可拖动的元素:

import { Directive, HostBinding, HostListener } from '@angular/core';

@Directive({
  selector: '[appDraggable]'
})
export class DraggableDirective {
  @HostBinding('class.dragging') dragging = false;

  @HostListener('dragstart', ['$event'])
  onDragStart(event: DragEvent) {
    this.dragging = true;
    event.dataTransfer?.setData('text/plain', ''); // 可根据需求设置传递的数据
  }

  @HostListener('dragend')
  onDragEnd() {
    this.dragging = false;
  }
}

然后,在需要拖动的组件模板中使用该指令:

接下来,创建一个自定义指令,用于标记可接收拖放的元素:

import { Directive, HostListener } from '@angular/core';

@Directive({
  selector: '[appDroppable]'
})
export class DroppableDirective {
  @HostListener('dragover', ['$event'])
  onDragOver(event: DragEvent) {
    event.preventDefault();
  }

  @HostListener('drop', ['$event'])
  onDrop(event: DragEvent) {
    event.preventDefault();
    // 处理拖放的逻辑
  }
}

在需要接收拖放的组件模板中使用该指令:

最后,在父组件中监听拖放事件,并根据需要处理拖放的逻辑:

import { Component } from '@angular/core';

@Component({
  selector: 'app-parent',
  template: `
    
` }) export class ParentComponent { // 处理拖放的逻辑 }

通过以上方法,你可以实现在兄弟组件和嵌套组件之间的拖放功能。注意,在拖动元素时,需要设置相应的数据,以便在drop事件中进行处理。

相关内容

热门资讯

黑科技玄学(aapoker系统... 黑科技玄学(aapoker系统机制)太坑了真是真的有挂(透视)2025新版教程(2025已更新)(哔...
黑科技挂(微扑克ai分析器)太... 黑科技挂(微扑克ai分析器)太夸张了竟然真的有挂(透视)插件教程(2026已更新)(哔哩哔哩)1、下...
黑科技工具(wpk微扑克智能辅... 黑科技工具(wpk微扑克智能辅助)太夸张了原来是有挂(透视)透明挂教程(2023已更新)(哔哩哔哩)...
黑科技神器(wepoke辅助挂... 1、黑科技神器(wepoke辅助挂在哪开)太实锤了果然真的有挂(透视)科技教程(2020已更新)(哔...
黑科技有挂(wpk透明挂)太夸... 黑科技有挂(wpk透明挂)太夸张了一贯真的有挂(透视)透明挂教程(2024已更新)(哔哩哔哩)是一款...
黑科技代打(wepoke有假吗... 黑科技代打(wepoke有假吗)太夸张了一向是真的有挂(透视)透明挂教程(2026已更新)(哔哩哔哩...
黑科技科技(智星菠萝辅助器)太... 黑科技科技(智星菠萝辅助器)太实锤了确实真的有挂(透视)靠谱教程(2024已更新)(哔哩哔哩)1.智...
黑科技存在(wepoke插件)... 黑科技存在(wepoke插件)太离谱了从来真的是有挂(透视)科技教程(2023已更新)(哔哩哔哩);...
黑科技了解(wepokeai插... 黑科技了解(wepokeai插件)太嚣张了本然是有挂(透视)AI教程(2022已更新)(哔哩哔哩);...
黑科技好友房(红龙扑克ai辅助... 黑科技好友房(红龙扑克ai辅助)太夸张了一直是真的有挂(透视)解密教程(2024已更新)(哔哩哔哩)...