Я печатаю все массивы для каждого типа ввода = "флажок", но когда я устанавливаю флажок, ничего не происходит. Я просто хочу, чтобы при проверке флажка печатался только массив в значении флажка.
Вот мой код:
<template>
<main>
<section>
<div>
<input id = "boundingBox" type = "checkbox" value = "boundingBoxes" v-model = "checkboxes">
<label for = "boundingBox"> i1 </label>
<input id = "tree" type = "checkbox" value = "trees" v-model = "checkboxes">
<label for = "tree"> i2 </label>
<input id = "last" type = "checkbox" value = "cars" v-model = "checkboxes">
<label for = "last"> i3 </label>
</div>
<div>
<h2> list: </h2>
<div v-for = "(item, index) in checkboxes" :key = "index">
<p>{{ item[index].name }}</p>
</div>
</div>
</section>
</main>
</template>
<script>
const boundingBoxes = [
{
name: "bounding box",
color: "red"
},
{
name: "bounding box",
color: "orange"
}
];
const trees = [
{
name: "tree",
color: "green"
},
{
name: "tree",
color: "red"
},
{
name: "tree",
color: "yellow"
}
];
const cars = [
{
name: "car",
color: "black"
},
{
name: "car",
color: "blue"
},
{
name: "car",
color: "brown"
}
]
export default {
data() {
return {
checkboxes:[
boundingBoxes,
trees,
cars
],
}
},
}
</script>
Если есть что улучшить или исправить, скажите мне.
На данный момент весь код работает хорошо, не работает только фильтрация с флажками.
Спасибо.



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


Насколько я понимаю, у вас есть 3 флажка, и каждый содержит массив в качестве значения. Теперь при выборе флажка вы хотите распечатать выбранный массив флажков. Если да, вы можете попробовать этот :
new Vue({
el: '#app',
data: {
checkboxes: [],
boundingBoxes: [
{
name: "bounding box",
color: "red"
},
{
name: "bounding box",
color: "orange"
}
],
trees: [
{
name: "tree",
color: "green"
},
{
name: "tree",
color: "red"
},
{
name: "tree",
color: "yellow"
}
],
cars: [
{
name: "car",
color: "black"
},
{
name: "car",
color: "blue"
},
{
name: "car",
color: "brown"
}
]
},
mounted() {
this.checkboxes = [...this.boundingBoxes, ...this.trees, ...this.cars];
},
methods: {
getSelectedArr(e) {
this.checkboxes = e.target.checked ? e.target._value : [...this.boundingBoxes, ...this.trees, ...this.cars]
}
}
}) <script src = "https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script>
<div id = "app">
<input id = "boundingBox" type = "checkbox" :value = "boundingBoxes" @change = "getSelectedArr($event)">
<label for = "boundingBox"> i1 </label>
<input id = "tree" type = "checkbox" :value = "trees" @change = "getSelectedArr($event)">
<label for = "tree"> i2 </label>
<input id = "last" type = "checkbox" :value = "cars" @change = "getSelectedArr($event)">
<label for = "last"> i3 </label>
<div>
<h2> list: </h2>
<div v-for = "(item, index) in checkboxes" :key = "index">
<p>{{ item.name }}</p>
</div>
</div>
</div>Да, это то, что я хочу. Как я могу распечатать весь массив, если флажок не установлен?
@Gonzalo Вы можете добавить эту строку в mounted() крючок: this.checkboxes = [...this.boundingBoxes, ...this.trees, ...this.cars]. Я обновил фрагмент кода. Надеюсь, он будет работать в соответствии с вашим требованием.
да, это работает, но когда я проверяю, а затем снимаю флажок, ничего не показывает. Например: если я проверяю деревья, он показывает деревья массивов. Когда я снимаю галочку с деревьев, они ничего не показывают, мне нужно снова все показать.
Спасибо что подметил это. Я обновил фрагмент кода. Пожалуйста, примите ответ, если он вам поможет.
я не знаю почему, но при установке двух флажков печатается только последний
"Ничего не происходит" не говорит нам ничего полезного