• Vue的iview组件框架select远程搜索,选中后不刷新的问题


    1、场景:弹框内有一个下拉组件(支持搜索),当选择完数据后弹框关闭,再次打开后,下拉框内的数据是刚才选中的数据。
    原因:分析后觉得是搜索内容没有清空,导致下拉的数据只有一个

    2、解决方案

    a 、解决:调用下setQuery方法,伪代码如下:

    <select ref="select">
    <option>1</option>
    <option>2</option>
    </select>

    this.$refs.select.setQuery(null)

    每次代开弹框后,下拉数据是全部了

    b、UI框架采用了iview,用的select组件的自动补全功能,也就是select组件的远程搜索功能

    问题描述:第一次输入查询关键字,匹配到一条数据,选中后,再次输入查询关键字,如果和上次匹配到的条数length相同,选中时候结果发现匹配到的结果还是上一条的,并没有刷新。

    解决过程:很是郁闷。断断续续弄了一周,猜想各种可能性,还在项目里的node_modules文件夹iview的源码里写console,但是都没有输出任何信息,打的断点也不起作用,我一直以为是无法调试,困扰了许久,偶然间,居然发现在浏览器里是可以调试的,

    原来藏在这里,被自己蠢哭了!!!

    可以调试后,找问题就简单了许多,这次最大的收获就是发现了怎么调试node_modules下模块的代码。

    看了源码,发现只有在this.$on("append"),this.$on("remove")的时候才会触发下拉列表的刷新。所以当根据关键字查询获得的下拉列表条数和上次的相等时候,常常会不刷新。

    所以我手动在每次请求后端数据之前,先将select的list置为空。

  • 相关阅读:
    leetcode(5)-罗马数字转整数
    leetcode(4)-整数反转
    leetcode(3)-回文数
    leetcode(2)-有效的括号
    leetcode(1)-两数之和
    HTTP基础(一)
    ubuntu 18.04安装MariaDB 10.04并通过远程navicat连接
    ubuntu18.04 root用户登录
    xshell连接ubuntu虚拟机
    ubuntu18.04使用node压缩包的安装及配置
  • 原文地址:https://www.cnblogs.com/yun1108/p/10967735.html
Copyright © 2020-2023  润新知