解决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 相关文章推荐
JavaScript中null与undefined分析
Jul 25 Javascript
JavaScript设置首页和收藏页面的小例子
Nov 11 Javascript
jQuery中removeProp()方法用法实例
Jan 05 Javascript
js图片轮播特效代码分享
Sep 07 Javascript
基于JS2Image实现圣诞树代码
Dec 24 Javascript
jquery判断类型是不是number类型的实例代码
Oct 07 Javascript
Vue2学习笔记之请求数据交互vue-resource
Feb 23 Javascript
最通俗易懂的javascript变量提升详解
Aug 05 Javascript
关于JavaScript语句后面的分号问题
Dec 07 Javascript
vue.js动画中的js钩子函数的实现
Jul 06 Javascript
在node环境下parse Smarty模板的使用示例代码
Nov 15 Javascript
vue实现简单全选和反选功能
Sep 15 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语法(5)
2006/10/09 PHP
ajax+php打造进度条代码[readyState各状态说明]
2010/04/12 PHP
php简单统计中文个数的方法
2016/09/30 PHP
Bootstrap+PHP实现多图上传功能实例详解
2018/04/08 PHP
常用参考资料(手册)下载或者链接
2006/07/22 Javascript
JavaScript 动态改变图片大小
2009/06/11 Javascript
JavaScript 笔记二 Array和Date对象方法
2010/05/22 Javascript
xss文件页面内容读取(解决)
2010/11/28 Javascript
JS二维数组的定义说明
2014/03/03 Javascript
判断在css加载完毕后执行后续代码示例
2014/09/03 Javascript
Angularjs中如何使用filterFilter函数过滤
2016/02/06 Javascript
jQuery短信验证倒计时功能实现方法详解
2016/05/25 Javascript
BootStrap 智能表单实战系列(二)BootStrap支持的类型简介
2016/06/13 Javascript
总结Javascript中的隐式类型转换
2016/08/24 Javascript
ES6新特性之数组、Math和扩展操作符用法示例
2017/04/01 Javascript
Moment.js实现多个同时倒计时
2019/08/26 Javascript
Node.js实现简单管理系统
2019/09/23 Javascript
Vue3项目打包后部署到服务器 请求不到后台接口解决方法
2020/02/06 Javascript
微信小程序使用 vant Dialog组件的正确方式
2020/02/21 Javascript
vue.js+element 默认提示中英文操作
2020/11/11 Javascript
python实现的文件夹清理程序分享
2014/11/22 Python
python数据结构之图深度优先和广度优先实例详解
2015/07/08 Python
Django框架中render_to_response()函数的使用方法
2015/07/16 Python
Django中使用locals()函数的技巧
2015/07/16 Python
详解如何将python3.6软件的py文件打包成exe程序
2018/10/09 Python
详解python中的Turtle函数库
2018/11/19 Python
python3+selenium实现qq邮箱登陆并发送邮件功能
2019/01/23 Python
pyqt5 实现 下拉菜单 + 打开文件的示例代码
2019/06/20 Python
python 叠加等边三角形的绘制的实现
2019/08/14 Python
对pytorch中的梯度更新方法详解
2019/08/20 Python
django框架ModelForm组件用法详解
2019/12/11 Python
什么是规则表达式
2012/05/03 面试题
文员个人的求职信范文
2013/09/26 职场文书
人力资源管理专业自荐书范文
2014/02/10 职场文书
2014年保洁工作总结
2014/11/24 职场文书
交流会主持词
2015/07/02 职场文书