TLDR
Как я могу установить значение vue-autosuggest
после нажатия на предложение?
У меня есть относительно простое приложение, которое я использую ais-instasearch вместе с vue -autosuggest . Мое приложение работает должным образом, но проблема, с которой я сталкиваюсь, заключается в том, что, когда я выбираю элемент из предложений, он устанавливает в поле ввода значение [Object object]
, и я не могу выяснить из документов или отладить какое значение я должен вернуться, чтобы я мог очистить поле ввода. Что касается моего кода, поле ввода-вывода не отображается ни на один v-model
с.
Когда я проверяю установленные значения, например, я ищу lol
, я вижу, что компонент ais-autoComplete
имеет значение lol
в своем состоянии.
Мой компонент
<ais-instant-search :search-client="searchClient" index-name="blogs">
<ais-configure
:hitsPerPage="showing"
:restrictSearchableAttributes="searchCategories"
/>
<ais-autocomplete :classNames="{'ais-Autocomplete': 'tools-searchbar'}">
<template slot-scope="{ currentRefinement, indices, refine }">
<vue-autosuggest
:suggestions="indicesToSuggestions(indices)"
@selected="onSelect"
:input-props="{
id: 'tools-searchbar',
onInputChange: refine,
placeholder: 'Search for blogs...',
}"
>
<template slot-scope="{ suggestion }">
<a id="tools-link" target="_blank">
<v-flex>
<v-avatar class="pr-2" size="36">
<img
:src="suggestion.item.image || '/blogs.png'"
alt="/blogs.png"
/>
</v-avatar>
<span id="tool-name">
<ais-highlight
:hit="suggestion.item"
attribute="resolved_title"
v-if="suggestion.item.resolved_title"
/>
</span>
<div id="tool-description">
<ais-highlight
:hit="suggestion.item"
attribute="excerpt"
v-if="suggestion.item.excerpt"
/>
</div>
</v-flex>
</a>
</template>
</vue-autosuggest>
</template>
</ais-autocomplete>
</ais-instant-search>
И мои методы:
methods: {
onSelect(selected) {
if (selected) {
this.query = "";
window.open(selected.item.resolved_url);
}
},
indicesToSuggestions(indices) {
if (this.loggedin) {
return indices.map(({ hits }) => ({ data: hits }));
}
},
Первое изображение перед нажатием на соответствующий результат.
Второе изображение после нажатия на соответствующий результат.
Показывает компонент со значением lol
после нажатия