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事件,该事件会在放置区的父组件中处理。

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

相关内容

热门资讯

解密透视!wpk控制牌是真的吗... 解密透视!wpk控制牌是真的吗,微乐自建房免费脚本哪个最好用,指南教程(真的有挂)-哔哩哔哩;进入游...
科普透视!大菠萝免费辅助,微乐... 科普透视!大菠萝免费辅助,微乐家乡麻辣自建房,方案教程(有挂方法)-哔哩哔哩1、许多玩家不知道大菠萝...
关于透视!aapoker透视脚... 关于透视!aapoker透视脚本入口,微乐四川小程序修改器,办法教程(有挂实锤)-哔哩哔哩aapok...
详情透视!aapoker怎么设... 您好,aapoker怎么设置提高好牌几率这款游戏可以开挂的,确实是有挂的,需要了解加去威信【4852...
有挂透视!购买wepoker模... 有挂透视!购买wepoker模拟器,微乐小程序免费黑科技在线下载,课程教程(有人有挂)-哔哩哔哩购买...
关于透视!德州透视hhpoke... 关于透视!德州透视hhpoker,微乐陕西小程序辅助,妙招教程(有挂秘笈)-哔哩哔哩1、玩家可以在德...
教你透视!wepoker作弊方... 教你透视!wepoker作弊方法,微信小程序微乐游戏修改器,法子教程(有挂规律)-哔哩哔哩1、用户打...
普及透视!aapoker透视插... 普及透视!aapoker透视插件,微信微乐自建房辅助工具,模块教程(有挂技巧)-哔哩哔哩小薇(辅助器...
详细透视!hh poker辅助... 详细透视!hh poker辅助有用吗,微乐小程序卡五星脚本,法门教程(有挂细节)-哔哩哔哩hh po...
推荐透视!智星德州插件2024... 推荐透视!智星德州插件2024最新版,微乐小程序自建房辅助下载,窍门教程(果真有挂)-哔哩哔哩1、不...