如何在v-select组件vuetify上设置过滤条件?

时间:2019-05-19 16:36:10

标签: vue.js vuetify.js

我想知道是否可以在v-select中设置条件,以便它仅显示必要的选项。下面是一个示例。

<div id="app">
  <v-app id="inspire">
    <v-container fluid grid-list-xl>
      <v-layout wrap align-center>
        <v-flex xs12 sm6 d-flex>
          <v-select
            :items="items"
            label="Select an option"
            item-text ="name"
            item-value = "name"
          ></v-select>
        </v-flex>
      </v-layout>
    </v-container>
  </v-app>
</div>


new Vue({
  el: '#app',
  data: () => ({
    items: [
      {
        name : 'abc', type : 'test'
      },
      {
        name : 'xyz', type : 'dev'
      },
      {
        name : 'lmn', type : 'test'
      }
    ]
  })
})

在这里,我只需要显示类型为“测试”的选项即可。

1 个答案:

答案 0 :(得分:1)

为此,您可以使用computed properties过滤列表并进行呈现。

<div id="app">
  <v-app id="inspire">
    <v-container fluid grid-list-xl>
      <v-layout wrap align-center>
        <v-flex xs12 sm6 d-flex>
          <v-select
            :items="filteredData"
            label="Select an option"
            item-text ="name"
            item-value = "name"
          ></v-select>
        </v-flex>
      </v-layout>
    </v-container>
  </v-app>
</div>


new Vue({
  el: '#app',
  data: () => ({
    items: [
      {
        name : 'abc', type : 'test'
      },
      {
        name : 'xyz', type : 'dev'
      },
      {
        name : 'lmn', type : 'test'
      }
    ]
  }),

  computed: {
      filteredData(){
          return this.items.filter(item => item.type === 'test')
      }

  }
})