vue.js 解决v-model让select默认选中不生效的问题


Posted in Javascript onJuly 28, 2020

笔者今天在开发中遇到一个看起来很神奇的问题,平时编辑的页面我们select下拉选框利用vue.js 的v-model来实现自动选中,今天无论如何都选不中,后来经过很久的复查和大神的一句话终于解决这个这个问题,顺便分享一下。

问题

先上代码:

vue.js 解决v-model让select默认选中不生效的问题

上图是前端的H5页面

下面是js代码:

vue.js 解决v-model让select默认选中不生效的问题

vue.js 解决v-model让select默认选中不生效的问题

一眼看上好像也没有什么问题。js 在初始化的时候,调用后台接口,取到数据然后传递给vue里面定义的data里面。并且前端页面除了select不能正常选中,其他的input 框的数据也都全部显示出来了(因为涉及一些机密的数据,所以还是涂鸦一下,主要还是把问题说清楚)

vue.js 解决v-model让select默认选中不生效的问题

按照常理来说是不可能出现这个问题,毕竟之前在其他的项目也做过类似的。于是就开始查找问题了。

思考1:

是不是vue.js的版本问题导致的,后来换了版本发现还是不行这个假设不成立

思考2:

是不是我的变量名称写错了,检查一遍肯定不是这个问题

思考3:

是不是后台传过来的值就是空的,然后进行验证利用js的打印以及input框输出

vue.js 解决v-model让select默认选中不生效的问题

发现页面上也是能显示出来了,然后又排除了这个原因。

思考4:

是不是后台的匹配的hyList没有值呢?看了控制台确实有值的,于是又再一次实验一下再vue 的data里面写死了一个值

vue.js 解决v-model让select默认选中不生效的问题

然后前端去v-model="hy"也可以默认选中。这时候我就非常的纳闷了,咋回事了呢?后面随手改一下数据把hy:"8082"改成hy:8082发现,咦?选不中了,是不是值类型不匹配导致的前端不能默认选中。幸喜了一下,以为找到问题,后面经过校验发现也不是这个问题(此过程省略500字),又失望了一下。

突然,在举手无措的时候,狂刷页面,有一次我竟然看见默认选中,于是我又陷入了深深的思考,这不会是灵异事件吧!一看时间不早了,同事都已经下班走了,而我秉着有些问题老是去想,想不到,还不如路上想想或许就想通了,确实下班的路上一直在想这个问题(然而并没有想到什么,哈哈)

回到家,依然打开电脑,在那里狂刷页面,还是期待着能够出现一次默认选中的,终于皇天不负有心人,出来了。出来是出来了,还是没有任何进程。无奈,去问一下以前在一起的一位前端大神吧!霹雳吧啦在qq上的把问题描述了一遍,大神说代码贴出来看看,而后,大神的第一句话就是,你这么写代码的第一次见,果然骚操作。大神说你调接口是ajax异步的。我突然明白了,原来我分别调了两次接口,获取行业列表是一个接口,获取基本信息的行业是一个接口,ajax 的异步调用,虽然在js 的初始化的是时候去调用了,但是可能基本信息先数据出来了,行业列表的信息还没有出来,导致前端不能默认选中的原因。

解决方案一:

把两个异步请求放在vue的mounted生命周期中,注意,一定先调行业列表的数据,后调基本信息数据

解决方案二:

写一个接口里面就可以了

总结:

主要是对于一些技术点还是停留在会用的阶段,不过对于ajax这个问题没有注意到确实不应该啊,平时总是霹雳吧啦的打代码。这次踩的这个坑,算是一种成长了,平时也是多注意的一些细节的问题的。

以上这篇vue.js 解决v-model让select默认选中不生效的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
精解window.setTimeout()&window.setInterval()使用方式与参数传递问题!
Nov 23 Javascript
javascript IE中的DOM ready应用技巧
Jul 23 Javascript
JS下高效拼装字符串的几种方法比较与测试代码
Apr 15 Javascript
js 通用订单代码
Dec 23 Javascript
node+express+jade制作简单网站指南
Nov 26 Javascript
原生javascript 学习之js变量全面了解
Jul 14 Javascript
Angular 理解module和injector,即依赖注入
Sep 07 Javascript
React中使用UEditor百度富文本的方法
Aug 22 Javascript
Node.js使用MongoDB的ObjectId作为查询条件的方法
Sep 10 Javascript
Vue.js中provide/inject实现响应式数据更新的方法示例
Oct 16 Javascript
Vue解决echart在element的tab切换时显示不正确问题
Aug 03 Javascript
浅析JavaScript预编译和暗示全局变量
Sep 03 Javascript
Vue2.0 $set()的正确使用详解
Jul 28 #Javascript
JavaScript 监听组合按键思路及代码实现
Jul 28 #Javascript
JavaScript动画实例之粒子文本的实现方法详解
Jul 28 #Javascript
Vue $emit()不能触发父组件方法的原因及解决
Jul 28 #Javascript
vue 遮罩层阻止默认滚动事件操作
Jul 28 #Javascript
JavaScript实现沿五角星形线摆动的小圆实例详解
Jul 28 #Javascript
处理JavaScript值为undefined的7个小技巧
Jul 28 #Javascript
You might like
2014过年倒计时示例
2014/01/31 PHP
Laravel 批量更新多条数据的示例
2017/11/27 PHP
php生成复杂验证码(倾斜,正弦干扰线,黏贴,旋转)
2018/03/12 PHP
javascript背投广告代码的完善
2008/04/08 Javascript
最短的javascript:地址栏载入脚本代码
2011/10/13 Javascript
js字母大小写转换实现方法总结
2013/11/13 Javascript
jQuery实现企业网站横幅焦点图切换功能实例
2015/04/30 Javascript
jquery控制表单输入框显示默认值的方法
2015/05/22 Javascript
Google 爬虫如何抓取 JavaScript 的内容
2017/04/07 Javascript
详解Angular4 路由设置相关
2017/08/26 Javascript
vue mint-ui tabbar变组件使用
2018/05/04 Javascript
微信小程序实现富文本图片宽度自适应的方法
2019/01/20 Javascript
小程序云函数调用API接口的方法
2019/05/17 Javascript
vue开发移动端底部导航条功能
2020/04/08 Javascript
[51:11]2014 DOTA2国际邀请赛中国区预选赛5.21 LGD-CDEC VS DT
2014/05/22 DOTA
[36:02]DOTA2上海特级锦标赛D组小组赛#2 Liquid VS VP第一局
2016/02/28 DOTA
在Python的Flask框架中实现全文搜索功能
2015/04/20 Python
python冒泡排序简单实现方法
2015/07/09 Python
Python django实现简单的邮件系统发送邮件功能
2017/07/14 Python
python中reduce()函数的使用方法示例
2017/09/29 Python
详解如何用OpenCV + Python 实现人脸识别
2017/10/20 Python
python实现nao机器人手臂动作控制
2019/04/29 Python
解决Python3 抓取微信账单信息问题
2019/07/19 Python
python zip()函数使用方法解析
2019/10/31 Python
python找出列表中大于某个阈值的数据段示例
2019/11/24 Python
python django中8000端口被占用的解决
2019/12/17 Python
使用Keras实现Tensor的相乘和相加代码
2020/06/18 Python
使用CSS实现弹性视频html5案例实践
2012/12/26 HTML / CSS
实例讲解使用SVG制作loading加载动画的方法
2016/04/05 HTML / CSS
remote接口和home接口主要作用
2013/05/15 面试题
后勤部经理岗位职责
2014/02/23 职场文书
外语系大学生自荐信范文
2014/03/01 职场文书
2014春晚主持词
2014/03/25 职场文书
国际金融专业自荐信
2014/07/05 职场文书
党的群众路线教育实践活动总结
2014/10/30 职场文书
如何让你的Nginx支持分布式追踪详解
2022/07/07 Servers