html中代码:
<el-autocomplete
v-model="state"
:fetch-suggestions="querySearchAsync"
placeholder="请输入名称"
@select="handleSelect"
@change="handle(items)"
value-key="name"
size="mini"
:clearable="true"
v-if="items.children.length > 10">
</e-autocomplete>
fetch-suggestions是内部函数,这样写的话只有内部参数queryString,cb
@select默认的参数是当前选中的对象
解决办法:
:fetch-suggestions="((queryString,cb)=>{querySearchAsync(queryString,cb,items)})"
items为自定义参数,这样就可以拿到自定义参数了,自定义参数的个数没有限制
@select="handleSelect(items,$event)"
items为自定义参数,$event为内部参数
methods中:
querySearchAsync(queryString, cb,items) {
var restaurants = items.children;
var results = queryString ? restaurants.filter(this.createStateFilter(queryString)) : restaurants;
clearTimeout(this.timeout);
this.timeout = setTimeout(() => {
cb(results);
}, 300 * Math.random());
},
createStateFilter(queryString) {
return (state) => {
return (state.name.toLowerCase().indexOf(queryString.toLowerCase()) === 0);
};
},
handleSelect(item,items) {
console.log(item);
console.log(items);
},