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 相关文章推荐
Javascript 篱式条件判断
Aug 22 Javascript
利用JQuery的load函数动态加载其它页面的内容的实现代码
Dec 14 Javascript
jQuery .tmpl() 用法示例介绍
Aug 21 Javascript
Javascript中的arguments与重载介绍
Mar 15 Javascript
JavaScript点击按钮后弹出透明浮动层的方法
May 11 Javascript
c#程序员对TypeScript的认识过程
Jun 19 Javascript
易被忽视的js事件问题总结
May 14 Javascript
jQuery 翻页组件yunm.pager.js实现div局部刷新的思路
Aug 11 Javascript
Vue2.0 多 Tab切换组件的封装实例
Jul 28 Javascript
Node.js中环境变量process.env的一些事详解
Oct 26 Javascript
html中创建并调用vue组件的几种方法汇总
Nov 17 Javascript
Vue.js中v-for指令的用法介绍
Mar 13 Vue.js
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
php 大数据量及海量数据处理算法总结
2011/05/07 PHP
PHP常用函数和常见疑难问题解答
2014/03/05 PHP
php实现简易聊天室应用代码
2015/09/23 PHP
PHP的Laravel框架中使用消息队列queue及异步队列的方法
2016/03/21 PHP
CL vs ForZe BO5 第二场 2.13
2021/03/10 DOTA
用javascript实现计算两个日期的间隔天数
2007/08/14 Javascript
javascript 隐藏/显示指定的区域附HTML元素【legend】用法
2010/03/05 Javascript
cloudgamer出品ImageZoom 图片放大效果
2010/04/01 Javascript
jQuery.autocomplete 支持中文输入(firefox)修正方法
2011/03/10 Javascript
由点击页面其它地方隐藏div所想到的jQuery的delegate
2013/08/29 Javascript
Jquery中国地图热点效果-鼠标经过弹出提示层信息的简单实例
2014/02/12 Javascript
Jquery响应回车键直接提交表单操作代码
2014/07/25 Javascript
javascript实现Table间隔色以及选择高亮(和动态切换数据)的方法
2015/05/14 Javascript
jQuery使用animate创建动画用法实例
2015/08/07 Javascript
jQuery实现的简洁下拉菜单导航效果代码
2015/08/26 Javascript
jquery 属性选择器(匹配具有指定属性的元素)
2016/09/06 Javascript
Query常用DIV操作获取和设置长度宽度的实现方法
2016/09/19 Javascript
使用jquery实现的循环连续可停顿滚动实例
2016/11/23 Javascript
Highcharts+NodeJS搭建数据可视化平台示例
2017/01/01 NodeJs
element-ui表格列金额显示两位小数的方法
2018/08/24 Javascript
puppeteer库入门初探
2019/01/09 Javascript
[02:40]DOTA2超级联赛专访430 从小就爱玩对抗性游戏
2013/06/18 DOTA
[27:02]2014 DOTA2国际邀请赛中国区预选赛 5 23 CIS VS LGD第三场
2014/05/24 DOTA
[36:20]KG vs SECRET 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/19 DOTA
python对配置文件.ini进行增删改查操作的方法示例
2017/07/28 Python
对Python 数组的切片操作详解
2018/07/02 Python
Python根据指定文件生成XML的方法
2020/06/29 Python
星空联盟C# .net笔试题
2014/12/05 面试题
路政管理专业推荐信
2013/11/11 职场文书
责任心演讲稿
2014/05/14 职场文书
就业协议书怎么填
2014/09/15 职场文书
2015年护理工作总结范文
2015/04/03 职场文书
护士2015年终工作总结
2015/04/29 职场文书
停车场管理制度范本
2015/08/05 职场文书
2016年教师师德师风承诺书
2016/03/25 职场文书
详解如何使用Node.js实现热重载页面
2021/05/06 Javascript