У меня есть компонент Vue (2.2.1), который должен отображать каталог членства, отправляя запрос в API Laravel. Запрос успешно выполняется, и ответ правильный, когда я его утешаю. Аналогично, запрос API успешно выполняется в Postman, и объект JSON правильно отформатирован. Но ответ не будет передаваться в переменную в объекте данных экземпляра Vue, которому я пытаюсь его назначить. Мой код:
<template>
<div>
{{ entries }}
</div>
</template>
<script>
export default {
name: 'directory',
data() {
return {
entries: []
}
},
created() {
this.getEntries()
},
methods: {
getEntries: function() {
axios.get('/api/directory')
.then(response => {
this.entries = response.data;
});
}
}
}
</script>
Когда я загружаю страницу (после npm, запускаю dev), отображаются пустые скобки, представляющие начальное состояние entries
(пустой массив), а не необработанные данные JSON. (Я просто сейчас тестирую, пока не разрабатываю и не создаю таблицу). Однако, если я добавлю console.log(this.entries)
или console.log(response)
или console.log(response.data)
, правильная форма JSON отобразится в консоли, и ошибок не будет.
Я заменил код аксиоса на соответствующий код извлечения, включая строку ->json()
, и получил те же результаты. Я также использовал «практический» API (JSONPlaceholder), чтобы убедиться, что это не проблема с моим API, и также получил те же результаты. Это говорит о том, что я что-то не так делаю в своем компоненте Vue <script>
, но после нескольких часов поиска по SO, Google и форуму Vue.js я ничего не нашел. К сожалению, самая близкая совпадающая ссылка ( Vue.js не может установить данные, возвращаемые из ответа внешней оси ), не помогла.