el-autocomplete核心参数
可以实现异步的数据拉取,从异步返回的数据中,选择需要的结果,并回显到文本框中。
fetch-suggestions
回调列表,异步的方式获取数据列表,显示在列表框中
@select
当选中某一项时,会触发这个方法,将数据获取到,这时,我们可以将数据回显,或者赋值给父页面上的元素,如果希望赋值父页面上v-model绑定的元素,可以通过v-model原理中说的,绑定input事件,将当前值进行传递即可。
实例代码
子组件代码
<template>
<div>
<el-autocomplete
:fetch-suggestions="fetchSuggestions"
v-model="dataValue"
@select="handleSelect"
>
<template slot-scope="{ item }">{{ item.label }}</template>
</el-autocomplete>
</div>
</template>
<script>
export default {
name: 'SearchLawfirmName',
//allInfos是父组件传来的值,如果allInfos不是父组件传来的就不用这样写
props: ["allInfos"],
data() {
return {dataValue: null}
},
methods: {
fetchSuggestions(queryString, cb) {
let results = this.allInfos;
results = queryString
? results.filter(this.createFilter(queryString))
: results;
cb(results);
},
createFilter(queryString) {
return (item) => {
return item.value.toUpperCase().match(queryString.toUpperCase());
};
},
handleSelect(item) {
this.dataValue = item.label; // 回调在文框中显示的值
this.$emit('input', item.value);// 绑定到父组件的值
},
}
};
</script>
父页面上引用它
<SearchLawfirmName v-model="searchLawfirmName" :allInfos="allData"></SearchLawfirmName>
import SearchLawfirmName from "@/components/SearchLawfirmName/index.vue";
export default {
data() {
return {
allData:[
{ value: 'result1', label: 'Result 1' },
{ value: 'result2', label: 'Result 2' },
{ value: 'result3', label: 'Result 3' }
],
searchLawfirmName:null
}
}
}
上面代码中,我们通过import引入了自定义组件,再将组件选中的当前值赋给页面属性searchLawfirmName,我们将异步的数据列表allData
通过allInfos参数进行传递。
1.本站内容仅供参考,不作为任何法律依据。用户在使用本站内容时,应自行判断其真实性、准确性和完整性,并承担相应风险。
2.本站部分内容来源于互联网,仅用于交流学习研究知识,若侵犯了您的合法权益,请及时邮件或站内私信与本站联系,我们将尽快予以处理。
3.本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
4.根据《计算机软件保护条例》第十七条规定“为了学习和研究软件内含的设计思想和原理,通过安装、显示、传输或者存储软件等方式使用软件的,可以不经软件著作权人许可,不向其支付报酬。”您需知晓本站所有内容资源均来源于网络,仅供用户交流学习与研究使用,版权归属原版权方所有,版权争议与本站无关,用户本人下载后不能用作商业或非法用途,需在24个小时之内从您的电脑中彻底删除上述内容,否则后果均由用户承担责任;如果您访问和下载此文件,表示您同意只将此文件用于参考、学习而非其他用途,否则一切后果请您自行承担,如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。
5.本站是非经营性个人站点,所有软件信息均来自网络,所有资源仅供学习参考研究目的,并不贩卖软件,不存在任何商业目的及用途
暂无评论内容