Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >当使用 jquery 插件操作 input 时同步 vue 中绑定的变量办法

当使用 jquery 插件操作 input 时同步 vue 中绑定的变量办法

作者头像
前Thoughtworks-杨焱
发布于 2022-02-19 02:29:21
发布于 2022-02-19 02:29:21
2K00
代码可运行
举报
文章被收录于专栏:杨焱的专栏杨焱的专栏
运行总次数:0
代码可运行

发表于2018-05-102019-01-01 作者 wind

为什么要同步到 vue 上绑定的变量呢,因为如果我们不更新绑定的变量的值,vue 下次刷新组件的时候,就会将旧的值更新到 input 上。

我一般使用的方法是在 vue 中定义自定义指令,函数中可以获取到 vnode,有了 vnode 就可以获取vnode.context也就是 vue 对象,有了 vue 对象就可以将新的值设置到v-model绑定的那个变量上,因为这是指令,还不确定有多少个地方使用到了这个指令,所以可以通过从 el 上获取到一些信息,来帮助获取对应的 v-model 对象。例如下面这个自动完成的 jquery 插件的例子:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    Vue.directive('myautocomplete', {
        inserted: function (el,binding,vnode,oldVnode) {
            var jqEl = jQuery(el);
            console.log(jqEl);
            if (!jqEl.data('history')) {
                return;
            }
            const fieldId = jqEl.data('fieldid');
            jqEl.devbridgeAutocomplete({
                lookup: function (query, done) {
                    var result = {
                        suggestions: [{value:'蔡家坡',data:1},{value:'徐家庄',data:2}]
                    };
                    done(result);
                },
                minChars: 0,
                onSelect: function (suggestion) {
                    vnode.context.fields.forEach(function(field){
                        if(field.fieldId == fieldId){
                            field.value = suggestion.value;
                        }
                    });
                }
            });
        }
    });
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018-05-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
vue实战-完全掌握Vue自定义指令
作为使用Vue的开发者,我们对Vue指令一定不陌生,诸如v-model、v-on、v-for、v-if等,同时Vue也为开发者提供了自定义指令的api,熟练的使用自定义指令可以极大的提高了我们编写代码的效率,让我们可以节省时间开心的摸鱼~
yyds2026
2022/10/17
8660
写过自定义指令吗,原理是什么?
除了核心功能默认内置的指令 (v-model 和 v-show),Vue 也允许注册自定义指令。注意,在 Vue2.0 中,代码复用和抽象的主要形式是组件。然而,有的情况下,你仍然需要对普通 DOM 元素进行底层操作,这时候就会用到自定义指令。举个聚焦输入框的例子,如下:
bb_xiaxia1998
2022/10/03
3590
Vue 自定义指令
除了核心功能默认内置的指令 (v-model 和 v-show),Vue 也允许注册自定义指令。注意,在 Vue2.0 中,代码复用和抽象的主要形式是组件。然而,有的情况下,你仍然需要对普通 DOM 元素进行底层操作,这时候就会用到自定义指令。举个聚焦输入框的例子,如下:
Krry
2020/08/20
8020
Vue如何创建自定义指令?
什么是vue指令了? Vue自带的指令很多,v-for/v-if/v-else/v-else-if/v-model/v-bind/v-on/v-show/v-html/v-text... 原来这就是指令。
Javanx
2019/09/04
1.9K0
Vue如何创建自定义指令?
详细解析Vue自定义指令:一看就会的教程
Vue提供的指令方便了我们开发,有时我们需要对DOM 底层进行操作,就可以用自定义指令。
程序员海军
2023/11/25
3810
Vue.js-自定义指令 原
除了默认设置的核心指令(v-model 和v-show),Vue也允许注册自定义指令。注意在Vue2.0里面,代码复用的主要形式和抽象是组件--然而,有的情况下,你 仍然需要对纯DOM元素进行底层操作,这时候就会用到自定义指令。下面这个例子将聚焦一个input元素,像这样在页面加载时,元素将获得焦点(注意,autofocus在移动版Safari上不工作),事实上,你访问后还没点击任何内容,input就获得了焦点,现在让我们完善这个指令:
tianyawhl
2019/04/04
8980
vue自定义指令
vue除了提供了v-model、v-show、v-if等默认指令,还允许注册了自定义指令。比如在需要对DOM元素进行底层操作的时候,就会用到自定义指令。
用户3258338
2019/07/19
6660
vue自定义指令
字节前端一面常见vue面试题(必备)_2023-02-28
Vue 的编译过程就是将 template 转化为 render 函数的过程 分为以下三步
用户10377014
2023/02/28
6400
Vue 3自定义指令开发
在Angular和Vue中都有Directive的概念,我们通常讲Directive 翻译为“指令”。
葡萄城控件
2021/02/02
9050
美团前端vue面试题(边面边更)
在我们填完信息,光标离开标签的时候,才会将值赋予给value,也就是在change事件之后再进行信息同步
bb_xiaxia1998
2022/10/17
1K0
校招前端一面必会vue面试题指南3
我们看到的v-开头的行内属性,都是指令,不同的指令可以完成或实现不同的功能,对普通 DOM元素进行底层操作,这时候就会用到自定义指令。除了核心功能默认内置的指令 (v-model 和 v-show),Vue 也允许注册自定义指令
bb_xiaxia1998
2023/01/05
3.3K0
分享5个关于 Vue 的小知识,希望对你有所帮助
有时候,我们希望在Vue.js中在选项改变时获取所选的选项。在这篇文章中,我们将学习如何在Vue.js中获取选择的选项。
前端达人
2023/08/31
6910
分享5个关于 Vue 的小知识,希望对你有所帮助
面试官:你有写过自定义指令吗?自定义指令的应用场景有哪些?
指令系统是计算机硬件的语言系统,也叫机器语言,它是系统程序员看到的计算机的主要属性。因此指令系统表征了计算机的基本功能决定了机器所要求的能力
@超人
2021/02/26
1.8K0
面试官:你有写过自定义指令吗?自定义指令的应用场景有哪些?
Vue 编写一个长按指令插件
在以往的 Vue 项目开发过程中,我们使用插件的方法是Vue.use(plugin)。如:
小皮咖
2019/11/05
1.3K0
vue自定义指令
1.注册自定义指令(全局和局部) 1> 全局注册 <div id="app"> <input type="text" placeholder="我是全局自定义指令" v-focus /> </div> <script> Vue.directive("focus", { inserted: function (el) { el.focus(); }, }); new Vue({ el: "#app", }); </script> ### 2> 局部注册
leader755
2022/03/09
4440
Vue directive中修改v-model值
最近在重构一个旧项目,这个项目用到了一些bootstrap的插件,我们想保留这些插件,就会遇到一些问题,比如我们把插件封装成了directive,在双向绑定方面需要做如下处理:
javascript.shop
2019/11/13
2.9K0
Vue.js 自定义指令
除了默认设置的核心指令( v-model 和 v-show ), Vue 也允许注册自定义指令。
陈不成i
2021/07/27
8670
Vue03基础语法--Vue组件+样式绑定+修饰符+常用控件+自定义指令+自定义事件
定义语法:new Vue({el:'#d1',components:{组件名:{配置选项}}})
天蝎座的程序媛
2022/11/18
1.3K0
【Vue】(2)基础知识 | 过滤器 | 指令
前端修罗场
2023/10/07
2650
23. Vue 自定义指令
可以看到上面的输入框在刷新页面并没有进行自动聚焦,那么这时候可以使用自定义一个focus()方法来处理。 还有能否在刷新页面的时候,可以设置value在文本框中以及设置字体颜色呢? 能否进而通过传参的方式设置字体颜色呢?
Devops海洋的渔夫
2020/03/25
1.3K0
相关推荐
vue实战-完全掌握Vue自定义指令
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验