Sha*_*jan 5 html javascript vue.js vuejs2
我在多个元素中使用Vue js条件语句.
在某些情况下,我需要将if和else放在同一个元素中来过滤元素.
在这里,我使用多个元素来应用if和else.
<block v-if="nb == 3" align="left"></block>
<block v-if="nb > 3" align="center"></block>
Run Code Online (Sandbox Code Playgroud)
但我想在单个元素中同时应用,
<block v-if="nb == 3" align="left" v-else align="center"></block>
Run Code Online (Sandbox Code Playgroud)
可能吗 ?
或者其他任何解决方案都适用于此?
预先感谢.
Joe*_*lay 15
而不是使用v-if,尝试将属性绑定到三元表达式.
// : is a shorthand for v-bind:
<block :align="nb == 3 ? 'left' : 'center'"></block>
Run Code Online (Sandbox Code Playgroud)
如果你看起来有点太杂乱(或者如果你想要使用的逻辑太复杂而无法在一行中表达),你也可以尝试在组件中创建一个返回的或然后绑定到它的计算属性.."left""center"
您不能在同一元素上使用v-if和v-else。
我个人使用计算属性。
我假设您nb是一个反应变量或类似变量。
因此,您应该寻找这样的东西:
<block v-bind:align="computedAlign"></block>
Run Code Online (Sandbox Code Playgroud)
然后在你的组件中
// 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'
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8762 次 |
| 最近记录: |