Suggestion list input for Vue
- 
Install the plugin:
npm install vue-suggestion - 
Add the plugin into your app:
import Vue from 'vue'; import VueSuggestion from 'vue-suggestion'; Vue.use(VueSuggestion);
 - 
Use the
vue-suggestioncomponent:<template> <vue-suggestion :items="items" v-model="item" :setLabel="setLabel" :itemTemplate="itemTemplate" @changed="inputChange" @selected="itemSelected" > </vue-suggestion> </template> <script> import itemTemplate from './item-template.vue'; export default { data() { return { item: {}, items: [ { id: 1, name: 'Golden Retriever' }, { id: 2, name: 'Cat' }, { id: 3, name: 'Squirrel' }, ], itemTemplate, }; }, methods: { itemSelected(item) { this.item = item; }, setLabel(item) { return item.name; }, inputChange(text) { // your search method this.items = this.items.filter((item) => item.name.indexOf(text) > -1); // now `items` will be showed in the suggestion list }, }, }; </script>
ItemTemplate example:
<template> <div> <b>#{{ item.id }}</b> <span>{{ item.name }}</span> </div> </template> <script> export default { props: { item: { required: true }, }, }; </script>
 
  npm install vue-suggestionInstall the plugin into Vue:
import Vue from 'vue';
import VueSuggestion from 'vue-suggestion';
Vue.use(VueSuggestion, [(globalOptions = {})]); // Define default global options here (optional)View all available options in Props.
Or use the component directly:
<!-- your-component.vue-->
<template>
  <vue-suggestion v-model="value"></vue-suggestion>
</template>
<!-- some-sample-css-as-example-for-your-dropdown-autocomplete  -->
<style scope>
  .vue-suggestion .vs__list {
    width: 100%;
    text-align: left;
    border: none;
    border-top: none;
    max-height: 400px;
    overflow-y: auto;
    border-bottom: 1px solid #023d7b;
    position: relative;
  }
  .vue-suggestion .vs__list .vs__list-item {
    background-color: #fff;
    padding: 10px;
    border-left: 1px solid #023d7b;
    border-right: 1px solid #023d7b;
  }
  .vue-suggestion .vs__list .vs__list-item:last-child {
    border-bottom: none;
  }
  .vue-suggestion .vs__list .vs__list-item:hover {
    background-color: #eee !important;
  }
  .vue-suggestion .vs__list,
  .vue-suggestion .vs__loading {
    position: absolute;
  }
  .vue-suggestion .vs__list .vs__list-item {
    cursor: pointer;
  }
  .vue-suggestion .vs__list .vs__list-item.vs__item-active {
    background-color: #f3f6fa;
  }
</style>
<script>
  import { VueSuggestion } from 'vue-suggestion';
  export default {
    components: {
      VueSuggestion,
    },
  };
</script>Include vue-suggestion in the page.
<script src="https://unpkg.com/vue-suggestion"></script>If Vue is detected in the Page, the plugin is installed automatically.
Manually install the plugin into Vue:
Vue.use(VueSuggestion);Or use the component directly:
Vue.component('vue-suggestion', VueSuggestion.VueSuggestion);Copyright (c) 2018 Steven Dao. Released under the MIT License.
made with ❤ by Steven.
