如何使用 Vue JS 在 HTML 中的同一标签中使用 "v-if" 和 "v-else"?
How to use "v-if" and "v-else" in same tag in HTML using Vue JS?
我在多个元素中使用 Vue js 条件语句。
在某些情况下,我需要将 if 和 else 放在同一个元素中以过滤元素。
这里,我使用了多个元素来应用if和else。
<block v-if="nb == 3" align="left"></block>
<block v-if="nb > 3" align="center"></block>
但我想在单个元素中应用这两个元素,例如,
<block v-if="nb == 3" align="left" v-else align="center"></block>
可能吗?
或者任何其他解决方案来应用这个?
提前致谢。
尝试将属性绑定到三元表达式,而不是使用 v-if
。
// : is a shorthand for v-bind:
<block :align="nb == 3 ? 'left' : 'center'"></block>
如果这对您来说看起来有点太乱(或者如果您要使用的逻辑太复杂而无法在一行中表达),您也可以尝试在您的组件中创建一个 computed property returns "left"
或 "center"
,然后绑定到那个。
您不能在同一元素上使用 v-if
和 v-else
。
我个人会使用计算 属性。
我假设你的 nb
是反应变量或类似变量。
因此你应该寻找这样的东西:
<block v-bind:align="computedAlign"></block>
然后在你的组件中
// assuming you're using data and not props
data() {
return {
nb: 1 // default
}
},
// some other stuff that sets the nb variable in some way
computed: {
computedAlign() => {
if (this.nb === 3) {
return 'left'
} else {
return 'center'
}
}
}
您可以简单地使用三元运算符来实现
<block :align="nb==3?'right':'left'"></block>
我在多个元素中使用 Vue js 条件语句。
在某些情况下,我需要将 if 和 else 放在同一个元素中以过滤元素。
这里,我使用了多个元素来应用if和else。
<block v-if="nb == 3" align="left"></block>
<block v-if="nb > 3" align="center"></block>
但我想在单个元素中应用这两个元素,例如,
<block v-if="nb == 3" align="left" v-else align="center"></block>
可能吗?
或者任何其他解决方案来应用这个?
提前致谢。
尝试将属性绑定到三元表达式,而不是使用 v-if
。
// : is a shorthand for v-bind:
<block :align="nb == 3 ? 'left' : 'center'"></block>
如果这对您来说看起来有点太乱(或者如果您要使用的逻辑太复杂而无法在一行中表达),您也可以尝试在您的组件中创建一个 computed property returns "left"
或 "center"
,然后绑定到那个。
您不能在同一元素上使用 v-if
和 v-else
。
我个人会使用计算 属性。
我假设你的 nb
是反应变量或类似变量。
因此你应该寻找这样的东西:
<block v-bind:align="computedAlign"></block>
然后在你的组件中
// assuming you're using data and not props
data() {
return {
nb: 1 // default
}
},
// some other stuff that sets the nb variable in some way
computed: {
computedAlign() => {
if (this.nb === 3) {
return 'left'
} else {
return 'center'
}
}
}
您可以简单地使用三元运算符来实现
<block :align="nb==3?'right':'left'"></block>