首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么这个切换和过滤器在Vue JS中不起作用?

为什么这个切换和过滤器在Vue JS中不起作用?
EN

Stack Overflow用户
提问于 2019-01-19 04:27:47
回答 1查看 41关注 0票数 0

我已经创建了一个v-for指令,现在我正在尝试添加一个下拉过滤器,以便过滤显示的结果。然而,它就是不起作用。我已经仔细地遵循了每一步,因为这是基于Treehouse教程,但由于某些原因,当改变下拉菜单时什么也没有显示。似乎没有将name属性值设置为该对象。每次选择一个新选项时,它都应该触发函数filterList。

代码语言:javascript
复制
const clubs = [
    {
   name: 'Tigers',
   location: 'Manchester',
   members: '22',
   registered: 'No',
   pitch: 'Grass'
    },
    {
   name: 'Dolphins',
   location: 'Miami',
   members: '19',
   registered: 'Yes',
   pitch: 'Grass'
    },
    {
   name: 'Bleu Sox',
   location: 'Paris',
   members: '13',
   registered: 'Yes',
   pitch: 'Astroturf'   
    } 
];

const app = new Vue({
  el: '#app',
  data: {
    clubs,
    name: ''
  },
  methods: {
    toggleDetails: function(club) {
      this.$set(club, 'showDetails', !club.showDetails)
    },
    filterList: function() {
      this.name = event.target.value;
      console.log(this.name);
    }
  }
});

我的HTML如下;

代码语言:javascript
复制
<div id="app">

    <select v-on:change="filterList">
       <option v-for="club in clubs">{{club.name}}</option>
    </select>

  <ul>
    <li v-show="name === club.name" v-for="club in clubs" v-on:click="toggleDetails(club)">
      <h1>{{club.name}}</h1>
      <div v-show="club.showDetails">
          <p>{{club.location}}</p>
          <p>{{club.members}}</p>
      </div>
    </li>
  </ul>

</div>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-01-19 04:36:19

你不需要为此访问DOM事件- Vue是响应式的,并会在这一点发生变化时更新name

代码语言:javascript
复制
<select v-model="name">
   <option v-for="club in clubs">{{club.name}}</option>
</select>
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54260989

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档