解决vue select当前value没有更新到vue对象属性的问题


Posted in Javascript onAugust 30, 2018

vue是一款轻量级的mvvm框架,追随了面向对象思想,使得实际操作变得方便,但是如果使用不当,将会面临着到处踩坑的危险,写这篇文章的目的是我遇到的这个问题在网上查了半天也没有发现解决方案,最终研究了vue的源码中有关select元素的部分找到了答案,下面简单介绍我踩的关于select的一个坑:

使用场景:有两个select元素,一个select元素变动时,动态修改另一个select中填充的内容,并默认选择第一项,问题来了,每次当我提交form数据时发现:从slave元素对应的数据没有更新到响应vue对象相关属性,奇怪的是当我使用jquery获取该select的val()方法获取的是最新的数据,那么问题就来了:为什么元素的值发生了变动却没有更新到vue对象相关属性?

vue中相关源码:

// attach listener
this.listener = function () {
var value = getValue(el, multiple);
value = self.params.number ? isArray(value) ? value.map(toNumber) : toNumber(value) : value;
self.set(value);
};
this.on('change', this.listener);

看到了吧,只有select的change事件才会触发select元素的value值更新到vue对象相关属性,但我在使用select时从select的内容是我使用js代码追加的,选择第一项也是代码追加,这样就没有触发vue中select的listener 函数,当然这种情况仅仅出现在保存数据时没有改变从select内容而采用默认第一项,所以如果用户选择select的其他项后再切回第一项就可以触发该事件完成vue对象属性变更。

上面的解决方案不够友好,使用者会反感这种操作,那么如何解决呢?

我这里给出我的解决方案:在使用js代码追加内容到从select后,使用更改从select对应的vue对象属性来实现默认选择第一项。

以上这篇解决vue select当前value没有更新到vue对象属性的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
bcastr2.0 通用的图片浏览器
Nov 22 Javascript
鼠标经过的文本框textbox变色
May 21 Javascript
不安全的常用的js写法
Sep 15 Javascript
如何用JavaScript动态呼叫函数(两种方式)
May 03 Javascript
jQuery函数map()和each()介绍及异同点分析
Nov 08 Javascript
node.js中的http.response.addTrailers方法使用说明
Dec 14 Javascript
jQuery实现的AJAX简单弹出层效果代码
Nov 26 Javascript
在IE8上JS实现combobox支持拼音检索功能
May 23 Javascript
AngularJS实现一次监听多个值发生的变化
Aug 31 Javascript
详解JWT token心得与使用实例
Aug 02 Javascript
vue 添加和编辑用同一个表单,el-form表单提交后清空表单数据操作
Aug 03 Javascript
React Ant Design树形表格的复杂增删改操作
Nov 02 Javascript
微信小程序使用wxParse解析html的实现示例
Aug 30 #Javascript
vue中rem的配置的方法示例
Aug 30 #Javascript
Vue2实时监听表单变化的示例讲解
Aug 30 #Javascript
vue-swiper的使用教程
Aug 30 #Javascript
分享vue里swiper的一些坑
Aug 30 #Javascript
详解Vue CLI3 多页应用实践和源码设计
Aug 30 #Javascript
小程序图片长按识别功能的实现方法
Aug 30 #Javascript
You might like
用PHP发电子邮件
2006/10/09 PHP
javascript+php实现根据用户时区显示当地时间的方法
2015/03/11 PHP
php fseek函数读取大文件两种方法
2016/10/12 PHP
javascript之卸载鼠标事件的代码
2007/05/14 Javascript
百度地图api如何使用
2015/08/03 Javascript
jQuery实用技巧必备(上)
2015/11/02 Javascript
基于JS2Image实现圣诞树代码
2015/12/24 Javascript
jQuery插件EasyUI获取当前Tab中iframe窗体对象的方法
2016/08/05 Javascript
jstl中判断list中是否包含某个值的简单方法
2016/10/14 Javascript
微信小程序 网络API发起请求详解
2016/11/09 Javascript
原生js实现鼠标跟随效果
2017/02/28 Javascript
如何使用Bootstrap 按钮实例详解
2017/03/29 Javascript
详解vue表单验证组件 v-verify-plugin
2017/04/19 Javascript
JS中利用swiper实现3d翻转幻灯片实例代码
2017/08/25 Javascript
微信小程序自定义底部弹出框
2020/11/16 Javascript
Vue中实现权限控制的方法示例
2019/06/07 Javascript
vue实现滑动切换效果(仅在手机模式下可用)
2020/06/29 Javascript
Python中使用MELIAE分析程序内存占用实例
2015/02/18 Python
一篇文章入门Python生态系统(Python新手入门指导)
2015/12/11 Python
Python网络爬虫出现乱码问题的解决方法
2017/01/05 Python
python编程之requests在网络请求中添加cookies参数方法详解
2017/10/25 Python
Django使用详解:ORM 的反向查找(related_name)
2018/05/30 Python
pandas 将索引值相加的方法
2018/11/15 Python
浅谈Python中的模块
2020/06/10 Python
记录模型训练时loss值的变化情况
2020/06/16 Python
Java Unsafe类实现原理及测试代码
2020/09/15 Python
python map比for循环快在哪
2020/09/21 Python
Edwaybuy西班牙:小米在线商店
2019/12/04 全球购物
德国家具、照明、家居用品网上商店:Wayfair.de
2020/02/13 全球购物
商务英语大学生职业生涯规划书范文
2014/01/01 职场文书
高一英语教学反思
2014/01/22 职场文书
小学生新年寄语
2014/04/03 职场文书
公司催款律师函
2015/05/27 职场文书
学校少先队工作总结
2015/08/12 职场文书
浅谈redis的过期时间设置和过期删除机制
2022/03/18 MySQL
Nginx文件已经存在全局反向代理问题排查记录
2022/07/15 Servers