Есть полностью рабочий код на странице редактирования поста
<a href="#" v-on:click="confirm = 1" v-show="!confirm" class="btn btn-xs btn-danger">Удалить</a>
<span v-if="confirm">
Вы уверены?
<a href="{{ route('admin:news:delete', $news->id) }}" class="btn btn-xs btn-danger">да</a>
<a href="#" v-on:click="confirm = 0" class="btn btn-xs btn-success">нет</a>
</span>
var app = new Vue({
el: '#app',
data: {
confirm: 0
}
});
Нужен такой же функционал только на странице где информация по каждому посту выводится в таблице. То есть если выводится 10 строчек, то нужно такую кнопку для каждой строчки.
Если добавить вышеописанный код то при нажатии на одну кнопку срабатываю все, а нужно чтобы срабатывала только нажатая.
Я пробовал сделать вот так:
<a href="#" v-on:click="confirm[{{ $news->id }}] = 1" v-show="!confirm[{{ $news->id }}]" class="btn btn-xs btn-danger">Удалить</a>
<span v-if="confirm[{{ $news->id }}]">
Вы уверены?
<a href="{{ route('admin:news:delete', $news->id) }}" class="btn btn-xs btn-danger">да</a>
<a href="#" v-on:click="confirm[{{ $news->id }}] = 0" class="btn btn-xs btn-success">нет</a>
</span>
И вот так:
<a href="#" v-on:click="confirm[{!! $news->id !!}] = 1" v-show="!confirm[{!! $news->id !!}]" class="btn btn-xs btn-danger">Удалить</a>
<span v-if="confirm[{!! $news->id !!}]">
Вы уверены?
<a href="{{ route('admin:news:delete', $news->id) }}" class="btn btn-xs btn-danger">да</a>
<a href="#" v-on:click="confirm[{!! $news->id !!}] = 0" class="btn btn-xs btn-success">нет</a>
</span>
var app = new Vue({
el: '#app',
data: {
confirm: []
},
created: function () {
var items = this.confirm;
var news = {!! $news->toJson() !!}
news.data.forEach(function(element) {
items[element.id] = 0;
});
}
});
но это не работает.
Я думаю это обычная задача и ее уже много раз делали, но так как я только начал разбираться во vuejs, то не знаю как это реализовать.
Помогите, пожалуйста.