Vue-multiselect
Example fiddle for issue reproduction usage
by Damian Dulisz
HTML
<script src="https://unpkg.com/[email protected]/dist/vue-multiselect.min.js"></script>
<link rel="stylesheet" href="https://unpkg.com/[email protected]/dist/vue-multiselect.min.css">
<div id="app">
<multiselect
:class="{ 'is-danger': !value.length }"
v-model="value"
:options="options"
:multiple="false"
:taggable="true"
track-by="library"
@tag="selectNewValue"
:custom-label="customLabel"
:preserve-search="true"
>
</multiselect>
<pre>{{ value }}</pre>
</div>
CSS
* {
font-family: 'Lato', 'Avenir', sans-serif;
}
.is-danger .multiselect__tags {
border-color: red;
}
Babel + JSX
new Vue({
components: {
Multiselect: window.VueMultiselect.default
},
data: {
value: { language: 'JavaScript', library: 'Vue-Multiselect' },
options: [
{ language: 'JavaScript', library: 'Vue.js' },
{ language: 'JavaScript', library: 'Vue-Multiselect' },
{ language: 'JavaScript', library: 'Vuelidate' }
]
},
methods: {
customLabel (option) {
return `${option.library} - ${option.language}`
},
selectNewValue (text) {
const newValue = { language: 'Custom', library: text }
this.value = newValue
this.options.push(newValue)
}
}
}).$mount('#app')