Vues js: почему флажки не фильтруют значения для отображения?

Я печатаю все массивы для каждого типа ввода = "флажок", но когда я устанавливаю флажок, ничего не происходит. Я просто хочу, чтобы при проверке флажка печатался только массив в значении флажка.

Вот мой код:

<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>

Если есть что улучшить или исправить, скажите мне.
На данный момент весь код работает хорошо, не работает только фильтрация с флажками.

Спасибо.

"Ничего не происходит" не говорит нам ничего полезного

Dexygen 16.05.2022 05:37
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
2
1
36
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Насколько я понимаю, у вас есть 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 16.05.2022 16:35

@Gonzalo Вы можете добавить эту строку в mounted() крючок: this.checkboxes = [...this.boundingBoxes, ...this.trees, ...this.cars]. Я обновил фрагмент кода. Надеюсь, он будет работать в соответствии с вашим требованием.

Rohìt Jíndal 16.05.2022 16:42

да, это работает, но когда я проверяю, а затем снимаю флажок, ничего не показывает. Например: если я проверяю деревья, он показывает деревья массивов. Когда я снимаю галочку с деревьев, они ничего не показывают, мне нужно снова все показать.

Gonzalo 16.05.2022 16:51

Спасибо что подметил это. Я обновил фрагмент кода. Пожалуйста, примите ответ, если он вам поможет.

Rohìt Jíndal 16.05.2022 16:53

я не знаю почему, но при установке двух флажков печатается только последний

Gonzalo 16.05.2022 20:45

Другие вопросы по теме