【问题标题】:Vue.js Vuetify checkbox to chipgroupVue.js Vuetify 复选框到芯片组
【发布时间】:2021-11-30 23:26:47
【问题描述】:

目前有一个复选框实现来过滤搜索项,但希望使用芯片组组件。

复选框:

  <v-checkbox
    v-model="assetFilters"
    label="image"
    value="image"
  />
  <v-checkbox
    v-model="assetFilters"
    label="video"
    value="video"
  />
  <v-checkbox
    v-model="assetFilters"
    label="pdf"
    value="pdf"
  />
  <v-checkbox
    v-model="assetFilters"
    label="link"
    value="link"
  />
  <v-checkbox
    v-model="assetFilters"
    label="text"
    value="text"
  />
  <v-checkbox
    v-model="assetFilters"
    label="powerpoint"
    value="powerpoint"
  />

芯片组:

    <v-chip-group
      v-model="assetFilters"
      multiple
    >
      <v-chip
        v-for="item in assetFilters"
        :key="item"
        outlined
        filter
      >
        {{ item }}
      </v-chip>
    </v-chip-group>

这个芯片组暗示我做错了什么?

  data () {
    return {
      assetFilters: ['powerpoint', 'pdf', 'image', 'video', 'link', 'text'],

终于更新的手表:

  watch: {
    assetFilters () {
      console.log('asset filter change')
      this.search()
    }
  },

【问题讨论】:

  • 您需要像selectedItems 这样的单独字段作为v-model 用于chip-group
  • 谢谢@MatJ。可以举个简单的例子吗?

标签: vue.js vuetify.js


【解决方案1】:

您可以在数据属性中定义一个变量来存储选定的芯片:

data () {
    return {
      assetFilters: ['powerpoint', 'pdf', 'image', 'video', 'link', 'text'],
      selectedFilters: []
    }
}

请注意,因为您在 v-chip-group 中使用了 multiple 属性,所以 selectedFilters 应该是数组。

<v-chip-group
      v-model="selectedFilters"
      multiple
      @change="handleChange"
>
      <v-chip
        v-for="item in assetFilters"
        :key="item"
        outlined
        filter
        :value="item"
      >
        {{ item }}
      </v-chip>
</v-chip-group>

然后你可以定义@change事件来跟踪selectedFilters的值:

methods: {
    handleChange() {
      console.log('asset filter change', this.selectedFilters)
      this.search()
    }
},

【讨论】:

  • 谢谢。如何存储值而不是索引?
  • 不客气。是的,您可以为每个 v-chip 标签发送 :value="item" 道具。我刚刚更新了我的答案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-09-02
  • 2020-08-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-09-11
  • 2019-03-19
相关资源
最近更新 更多