Все еще пробую Vue с материалом vue; Я использовал v-for для отображения объектов массива на отдельных карточках.
поэтому в template это выглядит так:
<md-card v-for = "fruit in fruits" :key = "fruit.id" md-with-hover>
<md-card-content>
<p> {{ fruit.id }} | {{ fruit.name }}
</md-card-content>
<md-card-actions>
<md-button @click = "showInfo=true">
<span v-if = "showInfo"> You have selected the {{fruit.name}} with ID number: {{fruit.id}}</md-button>
</md-card-actions>
</md-card>
а data выглядит так:
fruits: [ {id: '1', name: 'Kiwi'}, {id: '2', name: 'Mango'}, {id: '3', name: 'Apple'}], showInfo: false
Вот что я хотел сделать:
Из того, что я сделал выше, когда я нажимаю кнопку карты Kiwi, это также запускает отображение диапазона на других картах.
Как я должен продолжать об этом?



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Замените логическое значение для showInfo на fruit.id или индекс:
Vue.use(VueMaterial.default)
new Vue({
el: '#demo',
data() {
return {
fruits: [ {id: '1', name: 'Kiwi'}, {id: '2', name: 'Mango'}, {id: '3', name: 'Apple'}],
showInfo: null
}
},
methods: {
// ? set id
showHide(id) {
this.showInfo === id ? this.showInfo = null : this.showInfo = id
}
}
})<script src = "https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script>
<link rel = "stylesheet" href = "https://unpkg.com/vue-material/dist/vue-material.min.css">
<link rel = "stylesheet" href = "https://unpkg.com/vue-material/dist/theme/default.css">
<div id = "demo">
<md-card v-for = "fruit in fruits" :key = "fruit.id" md-with-hover>
<md-card-content>
<p> {{ fruit.id }} | {{ fruit.name }}
</md-card-content>
<md-card-actions>
<!-- ? call method and pass id -->
<md-button @click = "showHide(fruit.id)">more</md-button>
<!-- ? compare with id -->
<span v-if = "showInfo === fruit.id">
You have selected the {{fruit.name}} with ID number: {{fruit.id}}
</span>
</md-card-actions>
</md-card>
</div>
<script src = "https://unpkg.com/vue-material"></script>
Можно ли это также использовать, если я хочу перенаправить на страницу при нажатии на карточку? Кроме того, спасибо!