Javascript Vue中的条件集v模型

Javascript Vue中的条件集v模型,javascript,html,vue.js,eslint,Javascript,Html,Vue.js,Eslint,我有一系列输入,可以是复选框或单选按钮,具体取决于vue组件的数据中的值 特别是,我有一个问题组件,问题可能只接受一个答案或多个答案。我在我的数据中有一个选择的\u答案数组,我想我可以让复选框将其作为他们的v型,而单选按钮可以将选择的\u答案[0]作为目标。这样,我就不必复制粘贴che输入元素,只需更改它们的类型和v型 因此,我的解决方案如下所示: <input :type="question.accepts_multiple answers ? 'checkbox' :

我有一系列输入,可以是复选框或单选按钮,具体取决于vue组件的
数据中的值

特别是,我有一个
问题
组件,问题可能只接受一个答案或多个答案。我在我的
数据中有一个
选择的\u答案
数组,我想我可以让复选框将其作为他们的
v型
,而单选按钮可以将
选择的\u答案[0]
作为目标。这样,我就不必复制粘贴che输入元素,只需更改它们的类型和v型

因此,我的解决方案如下所示:

<input
    :type="question.accepts_multiple answers ? 'checkbox' : 'radio'"
    :id="'ans-' + answer.id"
    :value="answer.id"
    v-model="question.accepts_multiple_answers ? selected_answers : selected_answers[0]"
/>
我可以用什么方法来完成我想做的事情?

你不能在
v-model
中使用任何高级代码(只是一个基本字符串),你可以导出
问题。接受多个答案?选择的\u答案:选择的\u答案[0]
计算的
并将
计算的
插入
v型

如果你需要一个setter,你需要写一个

计算:{
全名:{
//吸气剂
得到(){
返回this.firstName+''+this.lastName
},
//塞特
设置(新值){
变量名称=newValue.split(“”)
this.firstName=名称[0]
this.lastName=names[names.length-1]
}
}
}

同时,由于
v-model
只是其中的一部分,您也可以将其替换为常用的
:value
+
@input
(取决于字段的类型)。我现在确实更喜欢使用这2个,而不是
v-model
,尤其是对于您现在确实存在的限制。

您不能在
v-model
中使用任何高级代码(只是一个基本字符串),您可以导出
问题。是否接受多个答案?选择的\u答案:选择的\u答案[0]
计算的
并将
计算的
插入
v型

如果你需要一个setter,你需要写一个

计算:{
全名:{
//吸气剂
得到(){
返回this.firstName+''+this.lastName
},
//塞特
设置(新值){
变量名称=newValue.split(“”)
this.firstName=名称[0]
this.lastName=names[names.length-1]
}
}
}


同时,由于
v-model
只是其中的一部分,您也可以将其替换为常用的
:value
+
@input
(取决于字段的类型)。现在,我确实更喜欢使用这两种型号,而不是
v-model
,特别是考虑到您现在确实有这样的限制。

您不能真的这样做

我建议您在加载组件时设置一个变量,如下所示:

data()
{
    return {
        model_string: '',
    }
}
然后根据自己的条件给变量一些值

created() {
   if (your.first.condition) {
    this.model_string = your.value;
   } else if (your.other.condition) {
    this.model_string = your.value;
   }
}
在此之后,您可以根据自己的意愿在视图中使用它

<input v-model="model_string" ..... // your attributes>

你不能真的那样做

我建议您在加载组件时设置一个变量,如下所示:

data()
{
    return {
        model_string: '',
    }
}
然后根据自己的条件给变量一些值

created() {
   if (your.first.condition) {
    this.model_string = your.value;
   } else if (your.other.condition) {
    this.model_string = your.value;
   }
}
在此之后,您可以根据自己的意愿在视图中使用它

<input v-model="model_string" ..... // your attributes>

最后我自己弄明白了

<input
    :type="question.accepts_multiple_answers ? 'checkbox' : 'radio'"
    :id="'ans-' + answer.id"
    :value="question.accepts_multiple_answers ? answer.id : [answer.id]"
    v-model="selected_answers"
/>

最后我自己弄明白了

<input
    :type="question.accepts_multiple_answers ? 'checkbox' : 'radio'"
    :id="'ans-' + answer.id"
    :value="question.accepts_multiple_answers ? answer.id : [answer.id]"
    v-model="selected_answers"
/>


Btw,除了
v-model
,您几乎可以在任何地方使用任何常规ES6代码。有效代码示例:
:id=“`ans-${answer.id}`
Btw,除了
v-model
,您几乎可以在任何地方使用任何常规ES6代码。有效代码的示例:
:id=“`ans-${answer.id}`
如我在回答中所述,这里基本上有2个
值。可能会删除
v-model
,并将其更改为
@input
,类似于
@input=selected\u answers=$event.value
。不确定2
value
是什么意思。vue官方文档显示了在同一输入类型的相同元素上同时存在
v-model
value
的示例。对于文本来说,保持一个
v-model
IMO是没有实际意义的,但你需要这样做。我的回答是,这里基本上是2
值。可能会删除
v-model
,并将其更改为
@input
,类似于
@input=selected\u answers=$event.value
。不确定2
value
是什么意思。vue官方文档显示了在同一输入类型的相同元素上同时存在
v-model
value
的示例。对于文本来说,保持一个
v-model
IMO是没有实际意义的,但你需要这样做。我不会这么说的。