Javascript 如何在Vue中条件绑定v模型?
在JavaScript中,对象可以按如下方式排列可选值:Javascript 如何在Vue中条件绑定v模型?,javascript,reactjs,vue.js,Javascript,Reactjs,Vue.js,在JavaScript中,对象可以按如下方式排列可选值: <Child {...(editable && { editable: editableOpts })} /> <template> <textarea v-model="myModel"> </template> computed: { myModel(){ if(this.someValue == "test"){ return
<Child {...(editable && { editable: editableOpts })} />
<template>
<textarea v-model="myModel">
</template>
computed: {
myModel(){
if(this.someValue == "test"){
return "value1";
}else{
return "value2";
}
}
}
const有效载荷={
姓名:“约瑟夫”,
…(isMember&&{credential:true})
};
在React中,JSX可以随意传递如下道具:
<Child {...(editable && { editable: editableOpts })} />
<template>
<textarea v-model="myModel">
</template>
computed: {
myModel(){
if(this.someValue == "test"){
return "value1";
}else{
return "value2";
}
}
}
如何实现可选绑定v-model
我之所以要这样做,是因为我想在出错时在该文本区域显示警告
当出现错误时,textarea显示警告并清除输入(v-model的
v
)我想这样做会对您有所帮助
<template>
<textarea v-if="hasError" :value="textValue">
<textarea v-else v-model="textValue">
</template>
我想这样的事情会对你有好处
<template>
<textarea v-if="hasError" :value="textValue">
<textarea v-else v-model="textValue">
</template>
你没试过三元运算符吗
<template>
<textarea v-model="someValue == 'test' ? 'value1' : 'value2'">
</template>
或者,您可以使用以下计算属性执行此操作:
<Child {...(editable && { editable: editableOpts })} />
<template>
<textarea v-model="myModel">
</template>
computed: {
myModel(){
if(this.someValue == "test"){
return "value1";
}else{
return "value2";
}
}
}
计算:{
myModel(){
如果(this.someValue==“测试”){
返回“value1”;
}否则{
返回“value2”;
}
}
}
你没试过三元运算符吗
<template>
<textarea v-model="someValue == 'test' ? 'value1' : 'value2'">
</template>
或者,您可以使用以下计算属性执行此操作:
<Child {...(editable && { editable: editableOpts })} />
<template>
<textarea v-model="myModel">
</template>
computed: {
myModel(){
if(this.someValue == "test"){
return "value1";
}else{
return "value2";
}
}
}
计算:{
myModel(){
如果(this.someValue==“测试”){
返回“value1”;
}否则{
返回“value2”;
}
}
}
您需要使用v-if
检查第一个条件,如果匹配,则像这样绑定模型
<template>
<textarea v-if="something" :value="textValue">
<textarea v-else v-model="textValue"> <!-- bind v-model here -->
</template>
<textarea v-model="textValue == 'test' ? 'ifTrue' : 'ifFalse'">
或者你可以像这样使用三元运算符
<template>
<textarea v-if="something" :value="textValue">
<textarea v-else v-model="textValue"> <!-- bind v-model here -->
</template>
<textarea v-model="textValue == 'test' ? 'ifTrue' : 'ifFalse'">
有关更多信息,请参阅此链接
v-if
检查第一个条件,如果匹配,则像这样绑定模型
<template>
<textarea v-if="something" :value="textValue">
<textarea v-else v-model="textValue"> <!-- bind v-model here -->
</template>
<textarea v-model="textValue == 'test' ? 'ifTrue' : 'ifFalse'">
或者你可以像这样使用三元运算符
<template>
<textarea v-if="something" :value="textValue">
<textarea v-else v-model="textValue"> <!-- bind v-model here -->
</template>
<textarea v-model="textValue == 'test' ? 'ifTrue' : 'ifFalse'">
有关更多信息,请参阅此链接
- 正确的方法是使用计算变量的get和set属性
<template>
<textarea v-model="compVal" />
</template>
<script>
export default {
data () {
return {
valueTrue: 'hello',
valueFalse: 'bye',
selected: false
}
},
computed: {
compVal: {
get () {
if (this.selected) {
return this.valueTrue
} else {
return this.valueFalse
}
},
set (val) {
if (this.selected) {
this.valueTrue = val
} else {
this.valueFalse = val
}
}
}
}
}
</script>
导出默认值{
数据(){
返回{
valueTrue:'你好',
valueFalse:'再见',
所选:false
}
},
计算:{
康瓦尔:{
得到(){
如果(选择此选项){
返回此参数。值为true
}否则{
返回此参数。值为false
}
},
设置(val){
如果(选择此选项){
this.valueTrue=val
}否则{
this.valueFalse=val
}
}
}
}
}
正确的方法是使用计算变量的get和set属性
<template>
<textarea v-model="compVal" />
</template>
<script>
export default {
data () {
return {
valueTrue: 'hello',
valueFalse: 'bye',
selected: false
}
},
computed: {
compVal: {
get () {
if (this.selected) {
return this.valueTrue
} else {
return this.valueFalse
}
},
set (val) {
if (this.selected) {
this.valueTrue = val
} else {
this.valueFalse = val
}
}
}
}
}
</script>
导出默认值{
数据(){
返回{
valueTrue:'你好',
valueFalse:'再见',
所选:false
}
},
计算:{
康瓦尔:{
得到(){
如果(选择此选项){
返回此参数。值为true
}否则{
返回此参数。值为false
}
},
设置(val){
如果(选择此选项){
this.valueTrue=val
}否则{
this.valueFalse=val
}
}
}
}
}
我认为这是唯一的方法~除了在模板内需要一个包装器div。我认为这是唯一的方法~除了在模板内需要一个包装器div。您尝试过v-bind中的条件语法吗?v-model=“{vModelProperty:condition}”我不知道它是否有效,但它可能需要可选绑定v-model。您尝试过v-bind中的条件语法吗?v-model=“{vModelProperty:condition}”我不知道它是否有效,但它可能需要可选的绑定v-model。谢谢,但通过这种方式,它仍然绑定v-model。我想要可选绑定。选项在哪种情况下?谢谢,但这样,它仍然绑定v模型。我想要可选绑定。选项在哪种情况下?谢谢,但这样,它仍然绑定v模型。我想要可选绑定。谢谢,但是这样,它仍然绑定v型。我想要可选的装订。