Vue VueMultiselect Tagging
by kabanoki
HTML
<link rel="stylesheet" href="https://unpkg.com/[email protected]/dist/vue-multiselect.min.css">
<script src="https://unpkg.com/[email protected]/dist/vue-multiselect.min.js"></script>
<div id="app">
<multiselect
v-model="taggingSelected"
:options="taggingOptions"
:multiple="true"
:taggable="true"
label="name"
track-by="code"
@tag="addTag"
tag-placeholder="Add this as new tag"
placeholder="tag付け">
</multiselect>
</div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.6.10/vue.min.js"></script>
CSS
body {
background: #20262E;
padding: 20px;
font-family: Helvetica;
}
#app {
background: #fff;
border-radius: 4px;
padding: 40px;
transition: all 0.2s;
}
Vue
Vue.component('Multiselect', window.VueMultiselect.default);
new Vue({
el: "#app",
data: {
taggingOptions: [],
taggingSelected: [],
},
methods: {
addTag: function(newTag) {
const tag = {
name: newTag,
code: newTag.substring(0, 2) + Math.floor((Math.random() * 10000000))
}
this.taggingOptions.push(tag)
this.taggingSelected.push(tag)
},
}
})