@The_Last_Dot

Почему не работает фильтр в Vue.js?

файл App.vue:

<template>
  <div id="app">
    <Search v-model="search"></Search>
    <ul>
      <li v-for="(element, idx) in searchName" :key="idx">
        {{ element.name }} - {{ element.age }}
      </li>
    </ul>
  </div>
</template>

<script>
import Search from "./components/Search.vue";

export default {
  name: "App",
  components: {
    Search
  },
  data() {
    return {
      search: "",
      elements: [
        {
          name: "Bob",
          age: 30,
        },
        {
          name: "Mark",
          age: 50,
        }
      ]
    }
  },
  computed: {
    searchName() {
      return this.elements.filter((elem) => {
        return elem.name.toLowerCase().includes(this.search.toLowerCase());
      })
    }
  }
}
</script>


файл Search.vue:

<template>
  <div id="person">
    <label>
      Search Name:
      <input type="text" />
    </label>
  </div>
</template>

<script>
export default {
  name: "Search"
}
</script>


Вроде все сделал правильно, ошибок в консоли нет, но фильтр не работает. Спасибо.
  • Вопрос задан
  • 109 просмотров
Решения вопроса 1
xcodervv
@xcodervv
Фронтенд разработчик
v-model нужно ставить у самого инпута, а Вы пропсами пытаетесь привязать v-model для компонента Search.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы