В mounted устанавливаю значение abilities. На странице должны выводится данные из этого свойства, но ничего не выводится. Попробовала вывести это свойство целиком на странице - вывелись пустые фигурные скобки. Хотя если посмотреть во Vue Developer, это свойство правильно изменилось.
data() {
return {
pokemonInfo: null,
abilities: null,
ready: false
}
},
mounted: function () {
var id = this.$router.currentRoute.path.slice(1);
var abili = {};
this.$axios.get(`https://pokeapi.co/api/v2/pokemon/${id}`)
.then((response) => {
this.pokemonInfo = response.data
for (let i = 0; i < this.pokemonInfo.abilities.length; i++) {
this.$axios.get(this.pokemonInfo.abilities[i].ability.url)
.then((response) => {
abili[i] = response.data;
})
}
this.abilities = abili;
this.ready = true;
})
},
Вот тут вот данные должны выводится, выше это завернуто в блок с v-if="ready"
<h2>Abilities:</h2>
<p v-for="(item, index) in abilities">{{abilities[index].ability.name}}</p>
<p>{{abilities}}</p>
1) abilities у вас объект, а по факту это массив. Так пусть массивом и будет.
2) У вас есть вложенный запрос, которые вызываются параллельно и по результату выполнения записываются в некий abili
, но основной контекст выполнения результат не ждет и сразу ассайнит пустой объект в abilities
.
В результате должно получиться так (пример здесь):
mounted: function() {
this.$axios
.get(`https://pokeapi.co/api/v2/pokemon/2`)
.then(response => {
this.pokemonInfo = response.data;
const abilityRequests = this.pokemonInfo.abilities.map((el, index) => {
return this.$axios.get(this.pokemonInfo.abilities[index].ability.url);
});
Promise.all(abilityRequests).then((abilities) => {
this.abilities = abilities.map(response => response.data);;
this.ready = true;
});
});
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
У меня есть форма регистрации, она не использует html тэг form, а работает исключительно на ajax запросахМне нужно сделать подсказки с выводом ошибок...
Много вопросов было уже типа: "открываю файл с помощью <input type="file"/> и FileReader, а там значки ����� вместо русских букв"
При нажатии на <div name="show_details_by_order" открывается <div id="order_body_ и стает доступно нажать на <a name="show_extended_details", но при нажатии на нее срабатывает...