这一周主要学习如下:
Vue
在使用ElementUI的时候有一个el-select
标签,我们有一个需求就是需要在下拉列表的时候还需要过滤出特定的选项,但是ElementUI
官方默认的过滤却只能支持 label 的筛选,所以这个时候就需要重新filter-method
方法来过滤出所需要的选项。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
| <template> <div> <el-form v-model="selectData"> <el-select v-model="selectData.value" placeholder="请选择" filterable :filter-method="search" prop="value"> <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value"> <span style="float: left">{{ item.label }}</span> <span style="float: right; font-size: 15px">{{ item.value }}</span> </el-option> </el-select> </el-form> </div> </template> <script> export default { data () { return { options: [{ value: '选项1', label: '黄金糕' }, { value: '选项2', label: '双皮奶' }, { value: '选项3', label: '蚵仔煎' }, { value: '选项4', label: '龙须面' }, { value: '选项5', label: '北京烤鸭' }], selectData: { value: '' } }; }, methods: { search (val) { let copyObj2 = JSON.parse(JSON.stringify(this.options)); if (val != null && val !== '') { this.options = copyObj2.filter((item) => { if (item.value.indexOf(val) > -1) { debugger; return true; } else { return false; } }); } else { this.options = copyObj2; } } } }; </script> <style>
</style>
|
但是后来又说要把选择的值给另一个字段…于是我就在search方法下面加了一行this.otherField = val
。。后来前端把那一行给去除了。。。然后修改为如下代码。