Vue js v-autoComplete不能正确更新动态更改的项目
我正在尝试将
v-autocomplete
SELECT表单与基于文本输入的Vue组件中动态加载的项集成在一起。项目的数据是从http get获得的,并且经测试是正确的。起初,这些项看起来没有问题,但是一旦我进一步指定了我的输入,我就开始在组件中获得零个项,尽管接收到的数据包含的条目多于零个。过去几个小时我一直被困在这件事上,非常感谢您的帮助!:-)
下面我列出了代码的相关部分和说明该问题的两张图片。在文本输入字段上方,我打印出了输入的第一个匹配项,第二张照片中缺少这些匹配项。我认为v-autocomplete
组件有问题,但找不到问题所在。
<!-- The log -->
<div>{{locations[0]? locations[0].name : null}}</div>
<v-autocomplete
item-value="osm_id"
v-model="selectedLocationIndex"
item-text="name"
label="Location*"
:items="locations"
:search-input.sync="locationInput"
placeholder="Start typing..."
required
>
<template slot="item" slot-scope="data">
{{ data.item.name }}
</template>
</v-autocomplete>
这是代码的睡觉:
watch: {
locationInput: function(newVal, oldVal) {
this.locations = [];
if (newVal !== null && newVal !== '') {
this.getLocations(newVal).then((result) => {
const hits = result.data.hits;
hits.map(hit => {
this.locations.push(hit)
})
}).catch((err) => {
console.log('we have obtained an error', err)
});
}
}
}
这里有两张图片:
这里可以用->https://imgur.com/z9GgQ1y
这里没有->https://imgur.com/B9EN7ms
解决方案
添加no-过滤属性。
<!-- The log -->
<div>{{locations[0]? locations[0].name : null}}</div>
<v-autocomplete
item-value="osm_id"
no-filter
v-model="selectedLocationIndex"
item-text="name"
label="Location*"
:items="locations"
:search-input.sync="locationInput"
placeholder="Start typing..."
required
>
<template slot="item" slot-scope="data">
{{ data.item.name }}
</template>
</v-autocomplete>
相关文章