Vue autocomplete
by Konnor5092
HTML
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="https://unpkg.com/buefy/dist/buefy.min.css">
</head>
<script src="https://unpkg.com/vue"></script>
<script src="https://unpkg.com/buefy/dist/buefy.min.js"></script>
<div id="app">
<b-field label="Tag">
<b-taginput v-model="selected" :data="myDataTags" autocomplete open-on-focus type="is-primary"></b-taginput>
</b-field>
<b-field label="Group">
<b-select placeholder="Select a character">
<optgroup v-for="(option, key) in myData" v-bind:label="key">
<option v-for="opt in option">
{{ opt }}
</option>
</optgroup>
</b-select>
</b-field>
</div>
CSS
body {
background: #20262E;
padding: 20px;
font-family: Helvetica;
}
#app {
background: #fff;
border-radius: 4px;
padding: 20px;
transition: all 0.2s;
}
li {
margin: 8px 0;
}
h2 {
font-weight: bold;
margin-bottom: 15px;
}
del {
color: rgba(0, 0, 0, 0.3);
}
Vue
new Vue({
el: "#app",
data: {
selected: [],
myData: {
'First': ['One', 'Two'],
'Second': ['Three']
}
},
computed: {
myDataTags() {
var items = [];
for (var key in this.myData) {
if (this.myData.hasOwnProperty(key)) {
var obj = this.myData[key];
for (var prop in obj) {
items.push(obj[prop]);
}
}
}
return items;
}
}
})