Я успешно получаю данные из внешнего файла js (длинный процесс Json, экспортирует функцию обещания), но данные не были добавлены в компонент с первой попытки. Мне нужно ввести другой компонент, а затем при возврате отображаются данные.
Я пробовал использовать метод beforeCreate(), но это не помогло, condole.log(data) показывает информацию, а компонент нет.
<template>
<div class="roomsBar">
<div class="roomsArea">
<li v-for="building in allBuildings" :key="building">
<a v-on:click="clicked(building)">{{building}}</a>
</li>
</div>
</div>
</template>
<script>
import {menuData as menuData} from '../controllers/navigation.js';
export default {
name: 'Buildings',
data() {
return {
allBuildings: window.menu
}
},
methods: {
clicked: function(item){
this.$router.push({ path: '/navigation/'+item })
}
},
beforeCreate() {
window.menu = [];
menuData().then((data) => { // Recover the data from 'Navigation.js'
console.log(data);
for (const element of data) { // Filter data and only add building to the menu
window.menu.push(element.building);
}
console.log(window.menu);
});
}
}
</script>
<style scoped>
.roomsBar {
width: 100%;
height: 100%;
background-color: #fff;
}
li {
list-style-type: none;
}
a {
cursor: pointer;
color: #42b983;
}
</style>
Мне нужно, чтобы данные отображались с первой попытки.
Кстати, я новичок в vue.