Я использую цикл v-for с данными, извлеченными из файла JSON. Есть ли способ повторного рендеринга DOM и целых циклов v-for после загрузки нового файла JSON и замены старого? То, что я пытаюсь достичь, - это загрузка различных наборов продуктов при щелчке и обновлении DOM.Загрузите новые данные JSON и замените старый в VueJS
Vue.use(VueResource);
var productsList = new Vue({
el: '#vue',
data: function() {
return {
products: []
};
},
ready: function() {
this.$http.get('data/data.json').then(function (response) {
this.products = response.data;
});
},
methods: {
loadProducts: function (url) {
this.$http.get(url).then(function (response) {
this.products = response.data;
});
}
}
});
Спасибо за ответ. Возможно, мой вопрос был недостаточно ясен. Проблема в том, что когда я получаю новые «продукты» от JSON правильно, я вижу обновления в DOM, но я пытаюсь показать только продукты из новых данных и удалить старые из DOM. – Tomarz
Ну, установив 'this.products = something' вы уже сказали Vue, что хотите разместить новые данные в массиве, и он повторно отобразит DOM для вас с этими данными. Не совсем получите то, что вы хотите, как визуальный эффект. –
Да, это действительно работает. Вот что я имею в виду - исходный data1.json имеет 5 продуктов. Если я установил «this.products» в data2.json, у которого есть 3 продукта, DOM отображает все 8 продуктов, а не только 3, хотя на этой консоли отображаются только 3 объекта в массиве продуктов. – Tomarz