Angular 元素拖拽
2024-10-19 13:22:21
拖动元素到指定区域
拖放的同时传递数据
1. 安装 ng2-drag-drop
npm install ng2-drag-drop --save
2. 模板中配置可拖拽元素
// drag.component.html
<div>
<a href="javascript:;" *ngFor="let item of sysData" draggable [dragData]="item" [dragScope]="'system'">{{ item.name }}</a>
</div>
draggable - 表明此元素时可拖拽的
[dragData] = 'item' - 在拖动过程中将item数据从draggable到droppable
[dragScope]="'system'" - 拖拽范围,和第三步[dropScope]="'system'"相对应;
3. 模板中配置拖拽元素所拖拽的目的地
// drag.component.ts
<div droppable (onDrop)="onItemDrop($event)" [dropScope]="'system'"></div>
droppable - 第二步中拖拽的元素都将拖拽到有droppable指令的元素内;
(onDrop) - 当拖拽元素至此区域内后(鼠标释放后),触发onItemDrop方法,其中$event就是第二步中[dragData] = 'item'的item参数
[dropScope]="'system'" - 和第二步的[dragScope]="'system'"对应,[dragScope]="'system'"的拖拽元素只能拖拽到 [dropScope]="'system'"元素内;
4. ts文件
// drag.component.ts
export class DragComponent {
const sysData = [
{id: '1', name: '拖动元素1'},
{id: '2', name: '拖动元素2'},
{id: '3', name: '拖动元素3'},
{id: '4', name: '拖动元素4'}
];
}
onItemDrop(e: any) {
// data为拖拽时传递的数据 - item
const data = e.dragData;
}
最新文章
- MyBatis1:MyBatis入门
- 浅谈人脸检测之Haar分类器方法
- MVC筛选自定义属性下拉表
- 名词释义(ActiveMQ 和 Webservice)
- uvalive 3218 Find the Border
- Mysql优化之创建高性能索引(一)
- FireDAC
- linux下mysql的远程连接
- DSP_TMS32F2812的串口操作
- Mybatis异常There is no getter for property named &#39;XXX&#39; in &#39;class java.lang.String&#39;
- [Spring]初识Spring-Spring的基础使用-如何通过Bean来实例化?
- torchvision库简介(翻译)
- C# 程序员最常犯的 10 个错误http://www.oschina.net/translate/top-10-mistakes-that-c-sharp-programmers-make
- Notification详解(含工具类)
- rocketMq排坑:如何设置rocketMq broker的ip地址
- 创建/读取/删除Session对象
- [Leetcode] valid palindrome 验证回文
- Ubuntu批量修改文件后缀
- 【bzoj1014】[JSOI2008]火星人prefix Splay+Hash+二分
- laravel基础课程---1、laravel安装及基础介绍(laravel如何安装)