Я использую vue multiselect, и мне нужны мои опции, чтобы перейти от api. Когда я использую этот пример из официальных документов, он работает.Vue multiselect options из API
import Multiselect from 'vue-multiselect'
export default {
components: {
Multiselect
},
data() {
return {
value: [
{ name: 'Vue.js', language: 'JavaScript' }
],
options: [
{ name: 'Vue.js', language: 'JavaScript' },
{ name: 'Adonis', language: 'JavaScript' },
{ name: 'Rails', language: 'Ruby' },
{ name: 'Sinatra', language: 'Ruby' },
{ name: 'Laravel', language: 'PHP' },
{ name: 'Phoenix', language: 'Elixir' }
]
}
}
}
Но если я заменю варианты с моими данными он не
data: function() {
return {
value: [],
options: this.users
}
},
methods: {
getUsers: function() {
this.$http.get('/api/get/users').then(function (response) {
this.users = response.data;
this.updateUsers();
console.log(this.users)
}, function (response) {
console.log(response)
});
},
updateUsers: function() {
this.options = this.users;
}
},
created: function() {
this.getUsers();
}
};
Я пытался вызвать метод с mounted
, beforeMount
и beforeCreate
и ни один из них не работают. Моя консоль показывает следующие ошибки:
Я уверен, что проблема с тем, как я передаю варианты, но я не знаю, как передать им правильный путь.
Для шаблона я просто используя по умолчанию сейчас:
<div>
<label class="typo__label">Simple select/dropdown</label>
<multiselect v-model="value" :options="options" :multiple="true" :close-on-select="false" :clear-on-select="false" :hide-selected="true" placeholder="Pick some" label="name" track-by="name"></multiselect>
<pre class="language-json"><code>{{ value }}</code></pre>
</div>
попробуйте инициализировать 'options' как пустой массив: [], иначе вы можете создать скрипку? – Saurabh