Вы хотите передать массив объектов для реквизита options
в следующей структуре:
[{
label: item.cname,
value: item.id
}]
Vue.component('v-select', VueSelect.VueSelect);
var app = new Vue({
el: '#pageContent',
data() {
return {
className: '',
academicClasses: [
{ id: 1, cname: 'One'},
{ id: 2, cname: 'Two' },
{ id: 3, cname: 'Three' },
{ id: 4, cname: 'Four' }
],
}
},
methods: {
addSection() {
alert(this.className);
}
},
computed: {
opts() {
return this.academicClasses.map(item => ({
label: item.cname,
value: item.id
}));
}
},
watch: {
className(val) {
console.log(val);
}
}
})
Vue.config.devtools = false;
Vue.config.productionTip = false;
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script>
<script src="https://unpkg.com/vue-select@latest"></script>
<div id="pageContent">
<form method="POST" @submit.prevent="addSection()">
<div class="form-group">
<label for="className">Select Class</label>
<v-select name="className" v-model="className" :options="opts"></v-select>
</div>
<div class="form-group">
<button type="submit" class="btn btn-success save-btn"><i class="fa fa-check"></i> Save</button>
</div>
</form>
</div>