我有一个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>
vuetify文档说:
可以使用v模型控制可闭合的芯片。
如果标签列表是动态的,我不明白我需要指定哪种对象作为每个标签的模型。
我尝试根据标签列表创建一个数组:
data(){
return {
clonedTags: this.tags.map((t) => {return true})
}
}
但失败了
答案 0 :(得分:5)
此组件中的v-model
绑定到标记的打开/关闭状态,因此它应该只是一个布尔值。 Here's an example fiddle.
在您的情况下,如果您为tags
数组中的每个对象赋予isOpen
属性,那么您可以像这样使用它:
<v-chip
v-for="tag in tags"
:key="tag.id"
v-model="tag.isOpen"
@input="onClose(tag)"
close
>
{{tag.name}}
</v-chip>
然后,只要tag.isOpen
的值发生变化,该变化就会反映在组件的打开/关闭状态,反之亦然。