Vue.js Vuetify,将值设置为v-select忽略项

Vue.js Vuetify,将值设置为v-select忽略项,vue.js,vuetify.js,Vue.js,Vuetify.js,我试图将给定字符串设置为v-select,但不知道如何操作(仅当我使用有效的:items值时才会显示),我放弃使用v-model,因为我有一个对象来存储数据,而且我还不断添加/删除项,因此用户不能两次选择给定选项 代码如下: 只需使用v-select的项目值和项目文本道具即可 此代码正在运行,但有一个问题,您不能有两个答案值相同的问题 <template> <v-app v-if="securityQuestions && options &&

我试图将给定字符串设置为v-select,但不知道如何操作(仅当我使用有效的:items值时才会显示),我放弃使用v-model,因为我有一个对象来存储数据,而且我还不断添加/删除项,因此用户不能两次选择给定选项

代码如下:


只需使用v-select的项目值和项目文本道具即可

此代码正在运行,但有一个问题,您不能有两个答案值相同的问题

<template>
  <v-app v-if="securityQuestions && options && answers">
    <v-select
      v-for="(item, index) in securityQuestions"
      :key="index"
      :menu-props="{ offsetY: true }"
      outlined
      dense
      :disabled="answers[index] !== undefined"
      :placeholder="answers[index] || options[index]"
      :items="questions"
      item-text="question"
      item-value="value"
      @input="addQuestion(item, index, $event)"
    ></v-select>
    Your selection: {{ answers }}
  </v-app>
</template>

<script>
export default {
  data() {
    return {
      options: [
        "Question 1 - Blablabla?",
        "Question 2 - What more?",
        "Question 3 - You did it?",
        "Question 4 - Of couse?",
        "Question 5 - Anything more?",
        "Question 6 - Goal!"
      ],
      securityQuestions: [
        { question: "Option 1", value: "O1", used: false },
        { question: "Option 2", value: "O2", used: false },
        { question: "Option 3", value: "O3", used: false },
        { question: "Option 4", value: "O4", used: false },
        { question: "Option 5", value: "O5", used: false },
        { question: "Option 6", value: "O6", used: false }
      ],
      answers: [],
      optionSelected: ""
    };
  },
  methods: {
    addQuestion(item, index, value) {
      this.answers[index] = value;
      this.securityQuestions[
        this.securityQuestions.findIndex(
          el => el.value === value && el.used === false
        )
      ].used = true;
    }
  },
  computed: {
    questions() {
      return this.securityQuestions.filter(obj => {
        return obj.used === false;
      });
    }
  }
};
</script>

您的选择:{{answers}
导出默认值{
数据(){
返回{
选项:[
“问题1-布拉布拉?”,
“问题2-还有什么?”,
“问题3——你做到了?”,
“问题4——当然?”,
“问题5-还有什么吗?”,
“问题6——目标!”
],
安全问题:[
{问题:“选项1”,值:“O1”,使用:false},
{问题:“选项2”,值:“O2”,使用:false},
{问题:“选项3”,值:“O3”,使用:false},
{问题:“选项4”,值:“O4”,使用:false},
{问题:“选项5”,值:“O5”,使用:false},
{问题:“选项6”,值:“O6”,使用:false}
],
答复:[],
选择权:“
};
},
方法:{
添加问题(项目、索引、值){
这个。答案[索引]=值;
这就是安全问题[
此文件为.securityQuestions.findIndex(
el=>el.value==value&&el.used==false
)
].used=true;
}
},
计算:{
问题(){
返回此.securityQuestions.filter(obj=>{
返回obj.used==false;
});
}
}
};
这里是codesandox:

已尝试此操作,但未成功。当使用对象作为项目时,项目文本和项目值似乎要显示所需的内容。@WilliamColmenares是否使用字符串数组来显示它?这不是一个很好的用途,也许它更好地转换为一系列带有答案和问题的对象。尝试使用对象和相同的方法,问题是,如果我删除(或停用该项目,以便不再显示在其他下拉列表中),将不会显示在所选的下拉列表中。我需要一种方法在选择一个项目后,放入一个随机字符串至少替换选择。。。因此,这样我可以将存储在securityQuestions对象中的字符串放入我将考虑的问题,可能需要添加watcher和computed属性来渲染,但这只是一个想法,我会想得更多。可能我根本不理解您的目标。您需要有6个v-select,每个v-select都有自己的问题(例如,选项?作为占位符)和答案(安全问题),当您选择其中一个v-select时,需要踢出该值并插入另一个随机值?。这有点让人困惑,如果你能多解释一点,你会很容易得到帮助。谢谢