Angular 7拖放 - 动态创建放置区
创始人
2024-10-17 04:30:03
0

以下是一个示例代码,演示了如何在Angular 7中动态创建拖放的放置区。

首先,需要安装@angular/cdk库:

npm install @angular/cdk

然后,在Angular组件中导入相关的模块和服务:

import { Component, ViewChild, ViewContainerRef } from '@angular/core';
import { CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop';

接下来,在组件的模板中添加一个容器来放置动态创建的放置区:

然后,在组件类中使用@ViewChild装饰器来获取容器的引用:

@ViewChild('container', { read: ViewContainerRef }) container: ViewContainerRef;

接下来,可以使用ViewContainerRefcreateComponent方法动态创建放置区。创建放置区的代码可以放在组件的ngOnInit方法中,或在其他需要的地方触发。

ngOnInit() {
  // 创建放置区组件
  const dropZoneComponentRef = this.container.createComponent(factory);

  // 设置放置区的数据和事件处理
  dropZoneComponentRef.instance.data = this.items;
  dropZoneComponentRef.instance.onDrop.subscribe((event: CdkDragDrop) => {
    moveItemInArray(this.items, event.previousIndex, event.currentIndex);
  });
}

在上述代码中,factory是一个ComponentFactory对象,可以通过ComponentFactoryResolver来获取,例如:

constructor(private resolver: ComponentFactoryResolver) {}

ngOnInit() {
  // 获取放置区组件的工厂
  const factory = this.resolver.resolveComponentFactory(DropZoneComponent);
  // ...
}

最后,需要在模板中显示放置区的内容。可以创建一个新的组件DropZoneComponent来定义放置区的模板和逻辑。以下是一个简单的示例:

@Component({
  selector: 'app-drop-zone',
  template: `
    
{{item}}
` }) export class DropZoneComponent { @Input() data: string[]; @Output() onDrop = new EventEmitter>(); }

在上述代码中,app-drop-zone是放置区的选择器,cdkDropList表示这是一个放置区,cdkDrag表示这是一个可拖放的元素。当放置区的内容被拖放时,会触发cdkDropListDropped事件,该事件会在放置区的父组件中处理。

这样,就可以动态创建并使用拖放的放置区了。

相关内容

热门资讯

来一盘!德州局HHpoker透... 来一盘!德州局HHpoker透视脚本,wepoker手机版透视脚本,存在挂教程(有挂技巧);《WPK...
查到实测!wepoker手机助... 自定义拱趴大菠萝挂哪里系统规律,只需要输入自己想要的开挂功能,一键便可以生成出微扑克专用辅助器,不管...
推荐一款!hhpoker德州透... 推荐一款!hhpoker德州透视,hhpoker真的假的,揭秘攻略(有挂透明);原来确实真的有挂(需...
科普攻略!wpk透视插件,德普... 科普攻略!wpk透视插件,德普之星有辅助软件吗,黑科技教程(有挂透视);科技安装教程;1367043...
教程辅助!约局吧怎么看有没有挂... 教程辅助!约局吧怎么看有没有挂,uupoker有透视吗,存在挂教程(有挂透明)1、玩家可以在约局吧怎...
传递经验!wepoker数据分... 传递经验!wepoker数据分析,wepoker可以开透视吗,必备教程(有挂辅助);致您一封信;亲爱...
信息共享!pokemmo内置修... 信息共享!pokemmo内置修改器,xpoker辅助助手,AI教程(有挂透明);实战中需综合运用上述...
实测教程!wepoker提高好... 实测教程!wepoker提高好牌率,竞技联盟辅助插件,微扑克教程(有挂辅助);实战中需综合运用上述技...
一分钟揭秘!wepoker透视... 一分钟揭秘!wepoker透视脚本免费使用视频,hhpoker有辅助吗,可靠技巧(有挂透视)1、不需...
揭秘真相!wepoker模拟器... 揭秘真相!wepoker模拟器哪个,约局吧开挂神器是真的吗,2025新版技巧(有挂软件);1分钟了解...