zoukankan      html  css  js  c++  java
  • 踩iviewui中Select 选择器两级联动,重置查询条件时第二级数据无法清除的坑

    小颖公司最近做的项目用的vue+iviewui+axios,在做项目的过程中,遇到一个问题:

    二级联动的下拉框,第一个下拉框一直都有值,第二个下拉框是在选择了第一个下拉框之后采取调用ajax获取其值,但当点击重置按钮时,所有的查询条件都要置空,所以这时第二个下拉框的 option 的值也应是空的,但事实是虽然小颖在点击重置按钮时把第二个下拉框的option绑定的值置空了,但它还是能获取到数据,最后定位到问题:
            获取第二个下拉框的值是给第一个下拉框绑定的 on-change 中获取的,所以当先选择了第一个下拉框的值,再获取到第二个下拉框的值,此时再点击重置按钮时,已经触发了第一个下拉框的change事件。最后的解决方法是在on-change中先判断当前第一个下拉框是否有值,有值再去调ajax获取第二个下拉框的值。

    无法重置:

    <template>
        <Select v-model="whereMap.model1" style="200px" @on-change="getCityList2Fun">
            <Option v-for="item in cityList1" :value="item.value" :key="item.value">{{ item.label }}</Option>
        </Select>
        <Select v-model="whereMap.model2" style="200px">
            <Option v-for="item in cityList2" :value="item.value" :key="item.value">{{ item.label }}</Option>
        </Select>
      <Button class="search-btn" type="default" @click="searchClear">清空</Button>
    </template>
    <script>
        export default {
            data () {
                return {
                    cityList1: [
                        {
                            value: 'New York',
                            label: 'New York'
                        },
                        {
                            value: 'London',
                            label: 'London'
                        },
                        {
                            value: 'Sydney',
                            label: 'Sydney'
                        },
                        {
                            value: 'Ottawa',
                            label: 'Ottawa'
                        },
                        {
                            value: 'Paris',
                            label: 'Paris'
                        },
                        {
                            value: 'Canberra',
                            label: 'Canberra'
                        }
                    ],
                    cityList2:[],
                    whereMap:{
                      model1: '',
                      model2: '',
                    }
                }
            },
          methods: {
              getCityList2Fun(){
                this.cityList2=[
                        {
                            value: 'New York',
                            label: 'New York'
                        },
                        {
                            value: 'London',
                            label: 'London'
                        },
                        {
                            value: 'Sydney',
                            label: 'Sydney'
                        },
                        {
                            value: 'Ottawa',
                            label: 'Ottawa'
                        },
                        {
                            value: 'Paris',
                            label: 'Paris'
                        },
                        {
                            value: 'Canberra',
                            label: 'Canberra'
                        }
                    ]
              },
                searchClear() {
                  this.whereMap={};
                  this.cityList2=[];
                }
            }
        }
    </script>

    修改后:

    其实就是修改 getCityList2Fun 方法

    getCityList2Fun() {
            if (this.whereMap.model1) {
              this.cityList2 = [
                {
                  value: 'New York',
                  label: 'New York'
                },
                {
                  value: 'London',
                  label: 'London'
                },
                {
                  value: 'Sydney',
                  label: 'Sydney'
                },
                {
                  value: 'Ottawa',
                  label: 'Ottawa'
                },
                {
                  value: 'Paris',
                  label: 'Paris'
                },
                {
                  value: 'Canberra',
                  label: 'Canberra'
                }
              ]
            }
          }
  • 相关阅读:
    Exchange 2013与 Office Web Apps 整合
    SharePoint2013 以其他用户登录和修改AD域用户密码 功能
    sharepoint 2010 自定义页面布局
    sharepoint 2010 记录管理 对象模型
    SharePoint2010 对象模型 关联列表
    在SharePoint Server 2010中更改“我的网站”
    xenapp 6.5 客户端插件第一次安装总是跳到官网
    如何解决在Windows Server 2008 R2 上安装证书服务重启后出现 CertificationAuthority 91错误事件
    在Win7 Hyper-v虚拟机中挂接真实机的声卡
    win8 中如何删除 共享文件夹 用户名和密码
  • 原文地址:https://www.cnblogs.com/yingzi1028/p/11430866.html
Copyright © 2011-2022 走看看