vuetify:使用动态列表的v-chip v-model

Mar*_*l.V 2 vue-component vuejs2 vuetify.js

我有一个vuetify组件来显示标签列表.

<template>
    <div>
        <v-chip 
            v-for="tag in tags" 
            :key="tag.id" 
            v-model="???"
            @input="onClose(tag)"
            close
        >
            {{tag.name}}
        </v-chip>
    </div>
</template>

<script>
    export default {
        name: 'TagIndex',
        props: ['tags'],

        methods: {
            onClose(tag){
                console.log('close tag')
            }
        }
    }    
</script>
Run Code Online (Sandbox Code Playgroud)

vuetify文档说:

可以使用v模型控制可闭合的芯片.

如果标签列表是动态的,我不明白我需要指定哪种对象作为每个标签的模型.

我试图根据标签列表创建一个数组:

data(){
  return {
    clonedTags: this.tags.map((t) => {return true})
  }
}
Run Code Online (Sandbox Code Playgroud)

但是失败了

tha*_*ksd 5

v-model这个组件绑定到标签的打开/关闭状态,所以它应该只是一个布尔值.这是一个小例子.


在您的情况下,如果您为tags数组中的每个对象赋予一个isOpen属性,那么您可以像这样使用它:

<v-chip 
  v-for="tag in tags" 
  :key="tag.id" 
  v-model="tag.isOpen"
  @input="onClose(tag)"
  close
>
  {{tag.name}}
</v-chip>
Run Code Online (Sandbox Code Playgroud)

然后,每当tag.isOpen更改的值,该更改将反映在组件的打开/关闭状态,反之亦然.

这是一个小例子.