el-input怎么使用字典表
时间: 2023-11-09 14:08:11 浏览: 242
如果你想在一个 el-input 中使用字典表,可以考虑使用 el-autocomplete 组件来实现。具体步骤如下:
1. 准备字典表数据
假设你的字典表数据如下:
```javascript
const dict = [
{ value: 'apple', label: '苹果' },
{ value: 'banana', label: '香蕉' },
{ value: 'orange', label: '橙子' },
{ value: 'grape', label: '葡萄' },
// ...
];
```
其中,`value` 表示字典表中的值,`label` 表示字典表中的显示文本。
2. 使用 el-autocomplete 组件
在模板中使用 el-autocomplete 组件,并将字典表数据传递给它:
```html
<template>
<el-autocomplete
v-model="selected"
:fetch-suggestions="querySearch"
placeholder="请输入关键词"
:trigger-on-focus="false"
:select-when-unmatched="true"
></el-autocomplete>
</template>
```
在这里,我们将 `selected` 绑定到 el-autocomplete 组件的 `v-model` 属性上,表示选中的值;将 `querySearch` 方法绑定到 `fetch-suggestions` 属性上,表示查询建议列表的方法;将 `placeholder` 属性设置为一个提示文字;将 `trigger-on-focus` 属性设置为 `false`,表示不在聚焦时触发查询建议列表;将 `select-when-unmatched` 属性设置为 `true`,表示在输入的值不在字典表中时,也可以选中输入的值。
3. 实现 querySearch 方法
在组件的 `methods` 中实现 `querySearch` 方法,用于查询建议列表:
```javascript
methods: {
querySearch(queryString, cb) {
const results = queryString ? this.dict.filter(this.createFilter(queryString)) : this.dict;
cb(results);
},
createFilter(queryString) {
return (item) => {
return item.label.indexOf(queryString) !== -1 || item.value.indexOf(queryString) !== -1;
};
},
},
```
在这里,我们使用 `filter` 方法从字典表中筛选出符合条件的项,并将结果传递给 `cb` 回调函数。同时,我们实现了一个 `createFilter` 方法,用于创建一个筛选函数,该函数会判断一个项的 `label` 或 `value` 是否包含查询字符串 `queryString`,如果包含,则返回 `true`,否则返回 `false`。
最终,你就可以在 el-input 中使用字典表了。当你输入一个值时,el-autocomplete 会根据字典表中的数据进行查询,并提供符合条件的建议列表,你可以从中选择一个值作为 el-input 的输入值。
阅读全文