Vue 自定义指令里面获取Vue实例 实现v-copy与i18n结合。
老项目业务代码写的自定义指令,想在指令里面获取vue实例,来提示国际化字段。直接打印this是不行的。需要在bing(el, { value }, vNode)里写上第三个参数
获取this 就是Vue实例。想获取定义的$t 就需要找到Vue实例
获取如下
Vue-Html
<a-button v-copy="this.link">{{ $t('record.copy') }}</a-button>
Vue实例并调取自定义i18n实例对象
let vueNodeObj = vNode.componentInstance.$root
// 获取i18n方法
vueNodeObj.$t('key', {count: 5})
const copy = {bind(el, { value }, vNode) {el.$value = value;el.handler = () => {if (!el.$value) {// Message.warning(this.$t('visit.copy.no'));Message.warning(vNode.componentInstance.$root.$t('visit.copy.no'));return;}// 动态创建 textarea 标签const textarea = document.createElement('textarea');textarea.readOnly = 'readonly';textarea.style.position = 'absolute';textarea.style.left = '-9999px';textarea.value = el.$value;document.body.appendChild(textarea);// 选中值并复制textarea.select();textarea.setSelectionRange(0, textarea.value.length);const result = document.execCommand('Copy');if (result) {Message.success(vNode.componentInstance.$root.$t('visit.copy.success'));// vNode.componentInstance.$root.$toast(vNode.componentInstance.$root.$t('visit.copy.success'))}document.body.removeChild(textarea);};// 绑定点击事件el.addEventListener('click', el.handler);},// 当传进来的值更新的时候触发componentUpdated(el, { value }) {el.$value = value;},// 指令与元素解绑的时候,移除事件绑定unbind(el) {el.removeEventListener('click', el.handler);},
}
directives
directives: {copy
}
Vue 自定义指令里面获取Vue实例 实现v-copy与i18n结合。相关推荐
- vue 自定义指令(directive)实例
一.内置指令 1.v-bind:响应并更新DOM特性:例如:v-bind:href v-bind:class v-bind:title v-bind:bb 2.v-on:用于监听DOM事件: 例 ...
- 9、Vue自定义指令
Vue自定义指令 1.vue指令和自定义指令 2.使用自定义指令 2.1.全局注册 2.2.局部注册 3.钩子函数 1.vue指令和自定义指令 什么是指令? v-model.v-bind.v-on.v ...
- [Vue]自定义指令
前言 系列文章目录: [Vue]目录 老师的课件笔记,不含视频 https://www.aliyundrive.com/s/B8sDe5u56BU 笔记在线版: https://note.youdao ...
- vue自定义指令(详解)
vue自定义指令,核心就是需要自己亲手去操作DOM 而vue中的内置指令例如v-model只不过是vue帮你动了dom上的display属性, 所以自定义指令,就是自己亲手对原生操作dom进行了一次封 ...
- Vue自定义指令及实现图片懒加载指令
一. 速识概念: 在我们使用 Vue 的过程中,遇到了很多方便我们操作的vue内置指令,以 v-xxx 表示.比如有 v-module,v-for,v-if,v-show 等等,每个指令都能实现一 ...
- pyqt5 treeview鼠标右键菜单事件_【动手实践】使用 Vue 自定义指令实现右键菜单...
本文来自于 神奇的程序员 前言 浏览器里右键时会有一个默认的菜单,在我的开源项目中正好有自定义右键菜单的需求,在npm库找了下与之相关的包,发现都是以组件形式实现的,感觉那种做法太过繁琐. 于是,我就 ...
- clientsideevents能定义几个click事件_分享8个非常实用的Vue自定义指令
作者:lzg9527 https://juejin.cn/post/6906028995133833230 在 Vue,除了核心功能默认内置的指令 ( v-model 和 v-show ),Vue 也 ...
- vue自定义指令基础
今天,我们讲讲vue自定义指令基础知识,主要包括指令如何创建,如何注册,以及指令的相关属性钩子函数. 指令的注册 我们通过以下方法注册一个全局自定义指令 Vue.directive(name,defi ...
- Vue自定义指令实现弹窗拖拽,四边拉伸及对角线拉伸
Vue自定义指令实现弹窗拖拽,四边拉伸及对角线拉伸 引言 页面布局 drag.js文件 弹窗拖拽实现及边界限制 鼠标指针悬停样式 四边拉伸及对角线拉伸 拉伸干涉 引言 近期公司vue前端项目需求:实现 ...
- vue 自定义指令 directive 全局 directives 局部 inserted update
vue 自定义指令 需求 效果 全局 - 自定义指令 代码 局部 - 自定义指令 代码 自定义命令传值 效果 代码 问点 需求 获取标签,扩展额外的功能 效果 全局 - 自定义指令 代码 // mai ...
最新文章
- 强强联合!Papers with Code 携手 arXiv,上传论文、提交代码一步到位
- pandas对dataframe进行排序:单数据列排序、多数据列排序、NA值排序位置、排序算法
- topcoder srm 500 div1
- 百分之九十的人不知道?在Python中f-string的几个技巧
- NET问答: 为什么 IEnumerablestring 不能被初始化?
- 电子计算机制作探测,如何自己制作一个简易的金属探测器
- 史上最详细JVM笔记
- leetcode刷题:数组中第K个最大的元素
- 想要导航提示页_如何优化网站导航呢?
- python论文排版格式_一行代码简化Python异常信息:错误清晰指出,排版简洁美观 | 开源...
- 基于JavaWeb实现网上图书商城系统
- CSF 格式文件播放器 下载地址
- 传真服务器维护,DreamFax传真服务器
- git使用kdiff3合并乱码问题
- 工业机器人图册 索罗门采夫_机械手控制系统设计(完整图纸)
- NOI 1818:红与黑(C++)
- 安全专业委员会发言_公司安全生产委员会发言稿
- 数字电路器件——门电路——与门电路、或门电路、非门电路及实例
- eclipse网络连接代理设置
- java项目小组项目总结报告_项目总结报告