首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在Angular 7中禁用目标cdkDropList中的元素移动/移动

在Angular 7中禁用目标cdkDropList中的元素移动/移动,可以通过以下步骤实现:

  1. 首先,确保你已经安装了Angular Material和CDK(Component Dev Kit)。如果没有安装,可以通过以下命令进行安装:
代码语言:txt
复制
npm install --save @angular/material @angular/cdk
  1. 在你的组件中,导入必要的模块:
代码语言:txt
复制
import { CdkDragDrop, moveItemInArray, transferArrayItem } from '@angular/cdk/drag-drop';
  1. 在组件的HTML模板中,使用cdkDropList指令来创建一个可拖拽的容器,并设置cdkDropListDisabled属性为一个布尔值来控制是否禁用元素的移动/移动。例如:
代码语言:txt
复制
<div cdkDropList [cdkDropListDisabled]="isDisabled" (cdkDropListDropped)="onDrop($event)">
  <div cdkDrag *ngFor="let item of items">{{item}}</div>
</div>
  1. 在组件的类中,定义一个布尔变量isDisabled来控制是否禁用元素的移动/移动。例如:
代码语言:txt
复制
isDisabled: boolean = false;
  1. 在组件的类中,实现onDrop方法来处理元素的移动/移动事件。在该方法中,你可以根据需要对元素进行处理,例如重新排序数组或移动元素到另一个容器。以下是一个示例:
代码语言:txt
复制
onDrop(event: CdkDragDrop<string[]>) {
  if (event.previousContainer === event.container) {
    // 在同一个容器内部移动元素
    moveItemInArray(event.container.data, event.previousIndex, event.currentIndex);
  } else {
    // 在不同容器之间移动元素
    transferArrayItem(event.previousContainer.data, event.container.data, event.previousIndex, event.currentIndex);
  }
}

在上述示例中,event.previousContainer表示之前的容器,event.container表示当前的容器,event.previousIndex表示元素在之前容器中的索引,event.currentIndex表示元素在当前容器中的索引。

这样,当isDisabled变量为true时,目标cdkDropList中的元素将被禁用移动/移动。当isDisabled变量为false时,元素将可以自由移动/移动。

推荐的腾讯云相关产品:腾讯云云服务器(CVM)和腾讯云对象存储(COS)。

  • 腾讯云云服务器(CVM):提供可扩展的云服务器实例,适用于各种计算需求。了解更多信息,请访问腾讯云云服务器
  • 腾讯云对象存储(COS):提供安全、稳定、低成本的对象存储服务,适用于存储和处理大规模非结构化数据。了解更多信息,请访问腾讯云对象存储
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

移动端touch事件无视disabled属性 转

,绑定了hm-tap指令,意外的发现居然不会触发tap事件,陷入苦思冥想中。...回忆一下,很早前就看到过这个属性,不过当时并没有进入到移动端的开发领域,对它的作用并没有过多关注。...设置pointer-events:none的元素,将不会成为事件目标。...但是如果其子孙元素设置了pointer-events:auto,该子孙元素仍然可成为事件目标,并且如果该事件支持冒泡,其设置了pointer-events:none的祖先元素,也会由于冒泡触发相应的监听事件...又是IE拖后腿了囧,不过移动端表现良好~ 总结 pointer-events这个CSS3属性,在移动端我们基本可以“放肆”的使用,在你需要禁用某个元素事件或某个区域事件的时候,可以考虑下这个属性,简单高效

2.3K20

前端常见面试题--初级版

**盒模型:**CSS中的盒模型描述了元素如何在页面上呈现,包括内容(content)、内边距(padding)、边框(border)和外边距(margin)。...**事件冒泡和捕获:**事件冒泡是指事件从目标元素开始,然后逐级向上传播到DOM树的顶部;事件捕获则相反,事件从DOM树的顶部开始,然后逐级向下传播到目标元素。...2.如何在 React 中实现组件之间的通信?3.Angular 的依赖注入是如何工作的?4.你如何使用 jQuery 选择和操作 DOM?...**Angular依赖注入:**Angular的依赖注入系统负责创建和管理应用中的对象及其依赖关系。你可以通过服务(Service)和依赖注入器(Injector)来实现依赖注入。...Rebase:Rebase操作则是将当前分支的提交“移动”到目标分支的最新提交之后,并创建一个新的提交历史记录。

9410
  • AngularDart4.0 指南- 模板语法一 顶

    内容 本指南涵盖了Angular模板语法的基本元素,以及构建视图所需的元素: 模板中的HTML 插值({{...}})...Angular执行表达式并将其分配给绑定目标的属性; 目标可能是HTML元素,组件或指令。...快速执行 Angular在每个更改检测周期后执行模板表达式。 更改检测周期由许多异步活动触发,如承诺的分辨率,http结果,计时器事件,按键和鼠标移动。...您不能使用属性绑定将值从目标元素中拉出。 您不能绑定到目标元素的属性来读取它。 你只能设置它。 同样,您不能在目标元素上使用属性绑定来调用方法。...绑定目标 方括号之间的元素属性标识目标属性。 以下代码中的目标属性是图像元素的src属性。

    5.2K10

    移动端事件穿透的原理与解决方案

    目前市面上主流的移动设备一般都使用触摸屏,触摸屏所使用的触摸事件模型与传统网页的鼠标事件模型有所区别,这种差异往往使初涉移动端的开发工程师陷入困境,事件穿透问题便是其中一个,本文将带你了解事件穿透及如何在实际项目中选择合适的方案解决事件穿透问题...正是由于这种 click 事件的滞后性设计为事件穿透(点击穿透)埋下了伏笔。 什么是事件穿透 事件穿透是指触发某个目标元素的触摸事件时,会同时触发该目标元素相同位置中其他元素的鼠标点击事件。...常见的事件穿透场景: 目标元素触发触摸事件时隐藏或移除自身,对应位置元素触发 click 事件或 a 链接跳转。...目标元素使用触摸事件跳转至新页面,新页面中对应位置元素触发 click 事件或 a 链接跳转。 注意:a 标签的链接跳转事件属于 click 事件。...在实际项目开发中,纯移动端项目优先推荐禁用 click 事件的方法,多端项目优先推荐禁用 touch 事件的方法。

    1.4K20

    移动端click事件300ms延迟

    chrome 32+中,如果设置了上述meta标签,那浏览器就可以认为该网站已经对移动端做过了适配和优化,就无需双击缩放操作了。...从实际应用的角度来看,touch-action决定了用户在点击了目标元素之后,是否能够进行双指缩放或者双击缩放。因此,这也相当完美地解决了 300 毫秒点击延迟的问题。...touch-action的默为 auto,将其置为 none 即可移除目标元素的 300 毫秒延迟。...Google 的 Polymer 微软的 HandJS @Rich-Harris 的 Points 为避免 300 毫秒点击延迟,我们主要关心这些 polyfill 是如何在非 IE 浏览器中模拟...,用来识别click事件是原生还是模拟 clickEvent.forwardedTouchEvent = true; // 在目标元素上触发该鼠标事件, targetElement.dispatchEvent

    2.8K21

    Angular学习资料大全和常用语法汇总(让后端程序员轻松上手)

    ng-dblclick 规定双击事件的行为 ng-disabled 规定一个元素是否被禁用 ng-focus 规定聚焦事件的行为 ng-form 指定 HTML 表单继承控制器表单 ng-hide 隐藏或显示...ng-jq 定义应用必须使用到的库,如:jQuery ng-keydown 规定按下按键事件的行为 ng-keypress 规定按下按键事件的行为 ng-keyup 规定松开按键事件的行为 ng-list...规定鼠标指针穿过元素时的行为 ng-mouseleave 规定鼠标指针离开元素时的行为 ng-mousemove 规定鼠标指针在指定的元素中移动时的行为 ng-mouseover 规定鼠标指针位于元素上方时的行为...定义集合中每项数据的模板 ng-selected 指定元素的 selected 属性 ng-show 显示或隐藏 HTML 元素 ng-src 指定 元素的 src 属性 ng-srcset...ng-transclude 规定填充的目标位置 ng-value 规定 input 元素的值 https://www.runoob.com/angularjs/angularjs-reference.html

    5.4K41

    前端成神之路-WebAPIs07

    07 - Web APIs 学习目标: 能够写出移动端触屏事件 能够写出常见的移动端特效 能够使用移动端开发插件开发移动端特效 能够使用移动端开发框架开发移动端特效 能够写出 sessionStorage...然后用盒子原来的位置 + 手指移动的距离 手指移动的距离: 手指滑动中的位置 减去 手指刚开始触摸的位置 拖动元素三步曲: (1) 触摸元素 touchstart: 获取手指初始坐标,同时获得盒子原来的位置...1.2.3 classList 属性 classList属性是HTML5新增的一个属性,返回元素的类名。但是ie10以上版本支持。 该属性用于在元素中添加,移除及切换 CSS 类。...浏览器禁用默认的双击缩放行为并且去掉300ms 的点击延迟。...前端常用的框架有 Bootstrap、Vue、Angular、React 等。既能开发PC端,也能开发移动端 前端常用的移动端插件有 swiper、superslide、iscroll等。

    3.6K10

    如何开发跨框架组件?

    如果你要把框架数据 6 移动到框架数据 3 前面。 ? 然后,通过同步 DOM 中的框架数据,DOM 中的 元素 6 移动到元素 3 前面。 ?...最后,同步最后的 DOM,原生组件中的数据 6 也移动到数据 3 的前面。 ? 你可以用与框架相同的方式同步它。...通过 remove 方法从索引中删除数据。 ordered 是要移动的数组起始索引和结束索引。...remove 方法允许你通过从该索引中删除数据,并将其添加到将通过 insert 方法访问的索引来移动数字。 added 是要添加的索引数组。通过 insert 方法将数据添加到索引中。...许多人在使用 egjs,而且正在用到许多框架中,如React、Angular 和 Vue。以前它需要花费两倍的时间来进行处理,因为它是用两组代码进行管理的。

    2.6K30

    【前端技术丨主题周】Angular 核心概念与框架演进

    指令与组件 在Angular 中,指令是一个极其重要的概念。指令可以为特定DOM 元素添加新的行为特征,从而扩展元素的功能。...另外,需要数据绑定机制来实现把数据映射到模板上,或者从模板(如input 控件)中取回数据。 4 ....服务和依赖注入 在Angular 中,如果说组件是用于处理界面和交互相关的,那么服务就是开发者用于书写和放置可重用的公共功能(如日志处理、权限管理等)和复杂的业务逻辑的地方。...而渲染引擎也是平台独立的,从而可以方便地实施在桌面软件和原生的移动客户端中。...对不同技术背景的开发者提供如Dart、ES 5 等其他语言版本的选择。 ? Angular CLI 工程化流程 它的社区和周边也强大多样。

    9.1K10

    Angular 结合 rxjs 实现拖拽

    这是我参与「掘金日新计划 · 4 月更文挑战」的第12天, 在上两篇文章中,我们学习了元素中必知重要属性和方法和 Angular 中自定义 Video 操作,没有度过的读者可先了解。...一个不错的 Idea,如果你使用 Angular 的 @angular/cdk/drag-drop 可以轻松实现,但是我们这里不使用工具。...元素拖拽 接下来就是实现 video 元素的拖拽。这里我们要监听 video 元素的三个事件,分别是鼠标按下 mousedown,鼠标移动 mousemove 和鼠标抬起 mouseup。...document, 'mouseup'); // 鼠标抬起 this.moveFn() } // 目标元素移动 public moveFn() { this.mouseDown...在移动的过程中,计算目标元素的相对可视窗口左侧和顶部的距离,将值赋予到 left 和 top。

    90810

    React vs Angular,到底那个更好用

    Angular Universal:是一种用于服务器端渲染的技术,它能够快速地渲染出首个应用页面,或是在可能缺乏渲染资源的浏览器端设备(如移动设备)上显示应用。...React 需要通过多种集成和各种支持工具才能运行: Redux:是一种状态容器,它可以加速 React 在大型应用中的运行,能够管理具有多种动态元素的应用组件,还可以被用于渲染。...而虚拟的 DOM 则是真实 DOM 的一种映射,因此它只跟踪变更的部分,仅更新特定元素,而不会影响整个树中的其他部分。...与使用 WebView 来渲染的混合式跨平台解决方案不同,该框架是在 JavaScript 虚拟机中运行各种应用,并直接连接到原生的移动 API 上,从而保证了具有能够和原生应用相媲美的高性能。...下图是旨在方便 Angular 开发人员使用的一款交互式服务界面,您可以自定义框架的当前版本和更新目标,以获取更新内容的清单。

    5.7K60

    【IVWeb知识weekly】第5期

    Yoga遵循了Flexbox规范,同时又将布局元素抽象成Node,为各个不同平台暴露出一组标准的接口,这样不同的平台只需实现这些接口就可以了。 2....该AI管理系统被扎克伯格命名为Jarvis(《钢铁侠》中的贾维斯)。12月20日,扎克伯格又继续公布了一些Jarvis的使用视频。 4....第一章讲Web Storage的使用,目标是让大家看完第一章后基本能应对80%的使用场景。第二章会讲一些Web Storage的进阶知识,包括一些标准,没有太多看的必要,但是也会有点小用。 3....如何在不增加投入的情况下让你的数据库快上200倍 文章介绍了最近的一些新技术,使得DBA不用再苛求程序员写出更好的查询语句,或者购买更多更好的机器来缓解数据库查询的压力。 开源相关 1....Facebook开源项目涉及的领域有移动工具多样化、大数据、客户端Web库、后台运行时和基础设施,还有通过开放计算项目涉及到的服务器和存储硬件等等。

    91410

    2015-2016前端架构体系技术精简版

    $.fn.method = function(){} **mvc/mvvm框架原理设计,vue/angular/avalon等 directive设计:html、text、class、html、attr...、repeat、ref,可扩展 filter设计:bool、upperCase、lowerCase,可扩展 表达式设计:if-else等实现 viewmodel结构设计:例如数据,元素,方法的挂载与作用域...数据更变检测:函数触发,脏数据检测、对象hijacking **polymer/angular2思想与设计思路 import技术 template和script引入方式 css样式命名空间隔离 简单复用第三方库...八、研究实验 **WebAssembly、webTRC、typescript **Material design规范的前端框架 交互动效库 **AMP-HTML规范 使用受限HTML以及缓存技术来提高移动网络中静态内容的性能...添加自定义的元素代替禁用掉的元素:amp-audio, amp-img、amp-video等 ......

    3.9K50

    Vue学习路线图

    响应式编程在前端开发中得到了大量的应用,在大多数前端MVX框架都可以看到它的影子。相比较于Angular.js和React.js而言,Vue.js并没有引入太多的新概念,只是对已有的概念进行了精简。...而在版本支持上,Vue.js抛弃了对IE8的支持,对移动端的支持也有一定的要求,也即是说使用Vue.js进行移动跨平台开发时需要Android 4.2+和iOS 7+支持。...要构建一个 Vue 应用程序,你还需要知道如何在网页中安装 Vue,并了解 Vue 实例的生命周期等知识。 组件 其次,Vue 组件是独立的可重用 UI 元素。...动画 如果你需要使用动画,那么你需要了解一下 Vue 的过渡系统,它也是 Vue 核心的一部分。你可以通过在向 DOM 添加元素或从 DOM 中删除元素时应用动画。...当向 DOM 中添加元素或从 DOM 中删除元素时,Vue 会检测到这些变更,并在过渡期间添加或删除相应的 CSS 类。

    5.7K20

    2018 前端趋势:更一致,更简单

    ,React 就会从根元素卸载或者在特殊的出错范围组件处卸载); 接口(portals,现在你可以在 React DOM 树之外的 DOM 节点中展示 React 子元素),还有数据流(streaming...尽管谷歌对就项目的支持何时结束还不明确,但是在过去的官方说法中已表明对其的支持,在主要的 web 流量转向 angular.io 而非 angular.org 之前是不会停止的。...通过近来发布的版本,可以有趣的看到 Angular 在新的一年中竟会更加受到欢迎。尽管还很难说有多少,但是当你看到 NPM 的下载量的时候,Angular 并没有看起来增长的那么多。...对于开发者来说,这意味着更加关注速度和移动端用户体验。这可以通过使用像 service workers 来实现离线支持和应用程序清单文件来定制应用在操作系统中的外观等新技术来实现。...Vue 和 Parcel 看起来可能成为各自的领域的领先者的竞争威胁;同时,旧的技术如 Angular 和 Browserify 还在,但以开始缓慢下滑。 一些趋势仍在继续,如基于组件的设计。

    1.4K20

    Angular ElementRef 简介

    ,即 Angular 是支持开发跨平台的应用,比如:Web 应用、移动 Web 应用、原生移动应用和原生桌面应用等。...为了能够支持跨平台,Angular 通过抽象层封装了不同平台的差异,统一了 API 接口。如定义了抽象类 Renderer 、抽象类 RootRenderer 等。...下面我们就来分析一下 ElementRef 类: ElementRef 的作用 在应用层直接操作 DOM,就会造成应用层与渲染层之间强耦合,导致我们的应用无法运行在不同环境,如 web worker 中...通过 ElementRef 我们就可以封装不同平台下视图层中的 native 元素 (在浏览器环境中,native 元素通常是指 DOM 元素),最后借助于 Angular 提供的强大的依赖注入特性,我们就可以轻松地访问到...我们先来介绍一下整体需求,我们想在页面成功渲染后,获取页面中的 div 元素,并改变该 div 元素的背景颜色。

    1.7K60

    2015-2016前端架构体系技术精简版

    $.fn.method = function(){}  **mvc/mvvm框架原理设计,vue/angular/avalon等 directive设计:html、text、class、html、attr...、repeat、ref,可扩展 filter设计:bool、upperCase、lowerCase,可扩展 表达式设计:if-else等实现 viewmodel结构设计:例如数据,元素,方法的挂载与作用域...数据更变检测:函数触发,脏数据检测、对象hijacking  **polymer/angular2思想与设计思路 import技术 template和script引入方式 css样式命名空间隔离 简单复用第三方库...八、研究实验  **WebAssembly、webTRC、typescript  **Material design规范的前端框架 交互动效库  **AMP-HTML规范 使用受限HTML以及缓存技术来提高移动网络中静态内容的性能...添加自定义的元素代替禁用掉的元素:amp-audio, amp-img、amp-video等 ......

    3.2K20

    Angularjs基础(十二)

    scope变量中。             ...ng-mousemove           描述:规定鼠标指针在指定的元素中移动时的行为。             实例:在鼠标指针在元素上移动时执行表达式。             ...ng-mouseover             描述:规定鼠标指针位于元素上方的行为。             实例:在鼠标指针移动到元素上时执行表达式。              ...h1>          定义和用法:ng-mouseover 指令告诉AngularJS鼠标移动到指定的HTML 元素上时执行的操作。             ...ng-transclude     描述:规定填充的目标位置。 ng-value         描述:规定input元素的值。

    3.1K100

    2018 年前端开发五大趋势

    经过深思熟虑且久经时间考验的Angular是一回事,但是Vue ……我们没想到这个开发环境成为前端技术工具列表中的佼佼者。 对于那些不熟悉Vue的读者,让我们简要介绍一下它的制胜之道。 ?...第三,Angular是创建可扩展应用程序的理想选择,支持与第三方库的简单集成。这个框架经常用于构建动态的移动应用,因为它使用了双向数据绑定,这种方法增加了带有丰富动画元素的应用程序的响应能力。...第一件事情,也是开发人员经常提到的,就是在移动设备上的高耗电量(不过与其他框架相比,通过正确的代码优化,可以减少这个问题)和高入门门槛(如果你是从头开始使用Angular开始工作,那么你要准备好去花费1.5...它拥有几个状态(一个空列表,一个部分填充的列表,列表中所有元素都被填充,列表中仅有一些元素被填充),我们需要适配每个元素的 UI。...即使你可以创建一个通用代码来根据每个状态转换应用程序界面,你仍然需要记录它(否则对其他团队成员而言是很难理解的)。Storybook 如何在这里提供帮助?

    2.9K40
    领券