vue.js - elementUi select

查看:200
本文介绍了vue.js - elementUi select的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

<template>
<el-select v-model="value8" filterable placeholder="请选择">

<el-option
  v-for="item in options"
  :key="item.value"
  :label="item.label"
  :value="item.value">
</el-option>

</el-select>
</template>

这里的filterable 是通过label 来搜索的,我想让label和value都可以作为索引值来搜索。

为el-select添加filterable属性即可启用搜索功能。默认情况下,Select 会找出所有label属性包含输入值的选项。如果希望使用其他的搜索逻辑,可以通过传入一个filter-method来实现。filter-method为一个Function,它会在输入值发生变化时调用,参数为当前输入值。

上面是文档说的,但是我不太明白,求大神解释下

解决方案

测试完全可以,编辑了4次 不好意思

<template>
    <el-select v-model="value" placeholder="请选择" filterable :filter-method="test">
         <el-option v-for="item in options" :key="item.value" :label="item.label :value="item.value">
          </el-option>
    </el-select>
</template>

js

data() {
    return {
        options: [{       //v-model数组 
            value: '选项1',
            label: '黄金糕'
        }, {
            value: '选项2',
            label: '双皮奶'
        }, {
            value: '选项3',
            label: '蚵仔煎'
        }, {
            value: '选项4',
            label: '龙须面'
        }, {
            value: '选项5',
            label: '北京烤鸭'
        }],
        backUpArr:[{   //备份数组
            value: '选项1',
            label: '黄金糕'
        }, {
            value: '选项2',
            label: '双皮奶'
        }, {
            value: '选项3',
            label: '蚵仔煎'
        }, {
            value: '选项4',
            label: '龙须面'
        }, {
            value: '选项5',
            label: '北京烤鸭'
        }]
}
    
methods: {
    test(val){
        if (val) { //val存在 
            this.options = this.backUpArr.filter((item) => {
                if (!!~item.label.indexOf(val) || !!~item.value.indexOf(val)) {
                    return true
                }
            })
        } else { //val为空时,还原数组
            this.options = this.backUpArr
        }
    }
}

filterable 和 filter-method要同时用,然后在方法里定义一个filter-method的函数,比如test,在test里操作当前的v-model的数组,但是 开始的时候你应该要要备份当前数组,把v-molde的数组用来动态根据输入的值来改变

这篇关于vue.js - elementUi select的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆