美文网首页
复制指令angular、vue通用

复制指令angular、vue通用

作者: KevinLee0424 | 来源:发表于2023-05-31 14:18 被阅读0次
html
<a [appCopy]="td?.orderNo">复制</a>
ts
import { Directive, ElementRef, HostListener, Input } from '@angular/core';
import { NzMessageService } from 'ng-zorro-antd';
import Clipboard from "clipboard";


@Directive({
  selector: '[appCopy]'
})
export class CopyDirective {
  @Input("appCopy") value;
  /** 监听元素的click事件 */
  @HostListener('click') onClick() {
    this.copy()
  }
  constructor(
    private msg: NzMessageService,
    private ele: ElementRef
  ) {}

  copy(){
    const clipboard = new Clipboard(this.ele.nativeElement, {
      text: () => {
        return this.value
      }
    });
    clipboard.on('success', e => {
      this.msg.success("复制成功")
      // 释放内存, 一定要清除事件,不然msg会弹出很多次
      clipboard.off('error')
      clipboard.off('success')
      clipboard.destroy()
    })
    clipboard.on('error', e => {
      // 不支持复制
      this.msg.warning("该浏览器不支持自动复制")
      // 释放内存,一定要清除事件,不然msg会弹出很多次
      clipboard.off('error')
      clipboard.off('success')
      clipboard.destroy()
    })
    // 通过调试源码发现,传入的this.ele.nativeElement缺少currentTarget属性,在这里手动加上currentTarget属性
    const target = this.ele.nativeElement;
    target.currentTarget = this.ele.nativeElement;
    // 默认需要调用一次,不然第一次点击无效
    clipboard.onClick(target);
  }
}

相关文章

  • vue3.0 指令 v-xxx

    什么是vue指令: 比如Angular中的 ng-xxx。 vue中以 v-xxx 开头人们称它为指令。 在vue...

  • Vue2.5笔记:v-if 和 v-show指令

    熟悉 Angular 的同学对指令肯定不会陌生,Vue中也借鉴了指令这一特性,在 Vue 中指令都是带有 v-的特...

  • 2018-10-09 vue的简单复习

    主流框架 vue angular react 1.vue简介 简化Dom操作 2.vue指令 3.vue过滤器 ...

  • vue学习笔记

    vue:读音: v-u-eview vue和angular区别?vue——简单、易学指令以 v-xxx一片html...

  • 1. Vue指令

    1. 基础指令 指令带有前缀 v-(Angular指令带有前缀 ng-),表示是由 Vue 提供的专用属性。基本的...

  • angular内置指令相关知识

    大纲 1、angular指令的分类2、angular指令之——组件3、angular指令之——属性指令 (ngSt...

  • vue

    第一节 vue:读音: v-u-eview vue和angular区别?vue——简单、易学指令以 v-xxx一片...

  • vue菜鸟笔记

    1.不同于angular的数据双向绑定;vue为单向绑定。 2.同样有指令。angular是“ng-show”表示...

  • Vue 3自定义指令开发

    什么是指令(directive) 在Angular和Vue中都有Directive的概念,我们通常讲Directi...

  • Vue入门系列(四)Vue模板和指令

    Vue模板和Angular模板相似,拥有指令和组件标签。 在渲染层上,Vue2.0引入虚拟DOM。Vue编译器会把...

网友评论

      本文标题:复制指令angular、vue通用

      本文链接:https://www.haomeiwen.com/subject/gjsyedtx.html