一、场景:弹框内有一个下拉组件(支持搜索),当选择完数据后弹框关闭,再次打开后,下拉框内的数据是刚才选中的数据。
缘由:分析后以为是搜索内容没有清空,致使下拉的数据只有一个node
二、解决方案后端
a 、解决:调用下setQuery方法,伪代码以下:浏览器
<select ref="select">
<option>1</option>
<option>2</option>
</select>app
this.$refs.select.setQuery(null)框架
每次代开弹框后,下拉数据是所有了iview
b、UI框架采用了iview,用的select组件的自动补全功能,也就是select组件的远程搜索功能this
问题描述:第一次输入查询关键字,匹配到一条数据,选中后,再次输入查询关键字,若是和上次匹配到的条数length相同,选中时候结果发现匹配到的结果仍是上一条的,并无刷新。调试
解决过程:非常郁闷。断断续续弄了一周,猜测各类可能性,还在项目里的node_modules文件夹iview的源码里写console,可是都没有输出任何信息,打的断点也不起做用,我一直觉得是没法调试,困扰了许久,偶然间,竟然发如今浏览器里是能够调试的,blog
原来藏在这里,被本身蠢哭了!!!rem
能够调试后,找问题就简单了许多,此次最大的收获就是发现了怎么调试node_modules下模块的代码。
看了源码,发现只有在this.$on("append"),this.$on("remove")的时候才会触发下拉列表的刷新。因此当根据关键字查询得到的下拉列表条数和上次的相等时候,经常会不刷新。
因此我手动在每次请求后端数据以前,先将select的list置为空。