Как использовать Axios с Vue-Multiselect?
Новое в использовании Vue-Multiselect. Я использую axios для выполнения запроса GET от заполнителя JSON для тестирования.
Как я могу получить заголовок и идентификатор сообщения, которые будут отображаться в раскрывающемся списке?
Прямо сейчас я просто показываю [Object Object] - [title] в моем окне выбора.
<!-- Vue component -->
<template>
<div>
<multiselect v-model='value' :options='posts' :custom-label='postWithTitle' placeholder='Select one' label='title' track-by='id'></multiselect>
{{ value }}
</div>
</template>
<script>
import Multiselect from "vue-multiselect";
import axios from "axios";
export default {
// OR register locally
components: { Multiselect },
data() {
return {
value: null,
posts: []
};
},
created() {
this.getPosts();
},
methods: {
getPosts() {
axios
.get("https://jsonplaceholder.typicode.com/posts")
.then(response => {
// eslint-disable-next-line
console.log(response);
this.posts = response.data;
})
.catch(error => {
// eslint-disable-next-line
console.log(error);
});
},
postWithTitle(id, title) {
return `${id} - [${title}]`;
}
}
};
</script>
1 ответ
Решение
исправить:
postWithTitle(option) {
return `${option.id} - [${option.title}]`;
}
объяснения:
я видел это, когда я просто console.log
GED внутри postWithTitle
функция:
обычай custom-label
Атрибут принимал обратный вызов, который принимает только один аргумент. этот аргумент был весь option
объект - одна запись вашего posts
массив.