Это мой вю код:Как изменить данные JSon после хранения в вю объекта данных
new Vue({
el : '#root',
data : {
blog : []
},
created() {
this.$http.get('https://jsonplaceholder.typicode.com/posts')
.then(function(response) {
// console.log(response.data)
this.blog = response.data
})
.catch(function (error) {
this.error = 'Error! Could not reach the API. ' + error
})
}
});
Мой HTML-код:
<div id="root" class="container">
<ul v-for="post in blog">
<li> {{ post.id }} </li>
<li>{{ post.userId }} </li>
<li>{{ post.title }} </li>
</ul>
</div>
Теперь я могу показать имя каждого пользователя просто отлично, но я хочу изменить что-то вроде, если идентификатор пользователя равен 1, тогда имя пользователя будет изменено на «Смит». Я попробовал этот код:
mounted() {
if (this.blog[0].userId == 1) {
this.blog[0].userId = 'Smith'
}
}
Но он показывает эту ошибку:
Uncaught TypeError: Cannot read property 'userId' of undefined
Если бы я использовал в метод с событием он работает просто отлично! Как это сделать?
Также после console.log (this.blog [0] .userId) я получаю: "1"
Итак, ваша проблема заключается не в добавлении имени, а в связи с идентификатором? Потому что вы получаете ошибку, так как id attr не существует – samayo
@samayo, когда я его пробовал, показывает эту ошибку: 'Uncaught TypeError: Не могу прочитать свойство 'name' of undefined' Но если я попробовал его с помощью какого-либо обработчика событий в метод, тогда он отлично работает! Точно я хочу изменить данные после сохранения массива! – Mohib
вы можете сделать 'console.log (this.blog)'? – samayo