Есть небольшие ошибки, приводящие к неожиданному результату.
Прежде всего, когда элемент добавляется в ваш массив, свойство showTab
не включается.
Рассмотрите возможность замены этогофрагмент:
<button type="button" class="btn btn-primary" @click="sites.push( {
sku: '1005',
purchasePrice: 4.50
})">
Add Data
</button>
Таким образом:
<button type="button" class="btn btn-primary" @click="sites.push( {
sku: '1005',
purchasePrice: 4.50,
showTab: false
})">
Add Data
</button>
Затем, когда вы хотите запустить переключение, вместо нацеливания на элемент, который вы хотите переключить, вы просматриваете массив и обновляетевсе элементы, потому что все они удовлетворяют условию if (event.target.id == "toggle")
.
Насколько я понимаю, вы хотите достичь переключения одного элемента.Чтобы добиться этого, вы должны заменить это:
addEvent(event, item, type, target) {
this.newData = [];
for (let i = 0; i < this.sites.length; i++) {
if (event.target.id == "toggle") {
item.showTab = !item.showTab;
}
}
this.newData.push(this.sites);
}
С помощью приведенного ниже фрагмента:
addEvent(event, item, type, target) { // There are some unused arguments here, consider removing them if they are not needed
item.showTab = !item.showTab;
}
Вы даже можете обновить режим переключения элементов непосредственно в html следующим образом:
<th id="toggle" @click="item.showTab = !item.showTab">
View
</th>