【问题标题】:How to use Vueitfy combo box in a v-for loop如何在 v-for 循环中使用 Vueitfy 组合框
【发布时间】:2019-12-28 21:57:17
【问题描述】:

我有一个 v-for 循环。循环内部是一个组合框。我在循环中有 3 个项目,所以我有 3 个组合框。当我在一个组合框中键入单词时,它会在其他组合框中显示这些单词。

我知道这与模型和索引有关,但我遇到了困难,需要一些帮助。

这里是代码

HTML:

<div v-for="(item,i) in clues" :key="i">

<v-combobox multiple
  v-model="select" 
  append-icon
  small-chips
  deletable-chips
  @keyup="comboActive"
  @paste="updateTags(item)"
  @change="updateTags(item)">
</v-combobox>

</div>

脚本:

data() {
    return {
        select: []
    }
}

查询:

let cluesRef = db.collection('clues')
    cluesRef.onSnapshot(snapshot => {
        var c = []
        snapshot.forEach(doc => {
            this.clue = doc.data()
            this.clue.id = doc.id

            c.push(this.clue)
        })
        this.clues = c

        if(this.clue.locationimagetext)
            this.select = this.splitJoin(this.clue.locationimagetext)

comboActive 方法用于在输入选择上设置一个类,因此当用户键入时,我可以以用户知道正在发生某些事情的方式设置组合框的样式,即红色边框。

@change="updateTags(item)"@paste="updateTags(item)" 在用户将项目添加到组合框时更新数据库。

注意:保存工作正常。只是在输入过程中,所有组合框都获得相同的值。

非常感谢所有帮助

【问题讨论】:

  • v-model="select[item]" select 是一个列表?
  • @ChrisLi 这部分工作。是的,现在当我输入单词时,其他组合框不使用相同的单词,但现在调用 updateTags 方法时出现错误

标签: javascript vue.js vuejs2 vuetify.js


【解决方案1】:

您需要为每个select 模型分配密钥

<div v-for="(item,i) in clues" :key="i">
  <v-combobox multiple
    v-model="select[i]" 
    append-icon
    small-chips
    deletable-chips
    @keyup="comboActive"
    @paste="updateTags(item)"
    @change="updateTags(item)">
  </v-combobox>
</div>

【讨论】:

  • 嗯,这在一定程度上是有效的。我现在从数据库中提取单词时遇到问题
  • 我现在遇到的这个问题是在页面加载时从数据库中提取项目。通常我说this.select = this.splitJoin(this.clue.locationimagetext) 但现在失败了,因为它正在寻找this.select。我不知道如何处理这个
  • 请记住,当您从 db 返回时,this.select 中的所有索引都需要与 this.clues 索引相同。也许您需要另一种方式来关联这两个值
  • 我很茫然。有什么想法吗?
  • 如何从数据库中获取数据?你能举一个查询->结果的例子吗?
【解决方案2】:

这不会将所有 3 个组合框绑定到同一个数据属性select 吗?我认为每个选择都需要不同的数据值。

【讨论】:

  • 没错,但这是一个循环。对于这个例子,我说的是 3,但它可能是 300。我不确定如何动态处理数据属性
  • 你试过设置v-model="select[i]"。这应该会给你一个索引与循环匹配的数组。
猜你喜欢
  • 2021-02-09
  • 2017-12-01
  • 1970-01-01
  • 2020-07-01
  • 2021-05-10
  • 2020-02-14
  • 2021-02-10
  • 2018-04-07
相关资源
最近更新 更多