如何在 vue.js 2 上的 class 中添加条件?
How can I add condition in class on vue.js 2?
我的组件vue是这样的:
<template>
<a href="javascript:" class="btn btn-block" :class="{ product == 'responseFound' ? ' btn-default' : ' btn-success' }" @click="add($event)">
...
</template>
存在错误:
invalid expression: :class="{ product == 'responseFound' ? '
btn-default' : ' btn-success' }"
我该如何解决?
只需去掉:class
中的括号:
<template>
<a href="javascript:" class="btn btn-block" :class="product == 'responseFound' ? ' btn-default' : ' btn-success'" @click="add($event)">
...
</template>
如果要添加更多条件,用[]
包起来创建数组:
:class="[product == 'responseFound' ? ' btn-default' : ' btn-success', foo ? 'foo' : 'bar']"
对于这种行为,我会使用计算的 属性。
从您的模板中删除逻辑,并将其移动到您的脚本部分。
<template>
<a href="javascript:" class="btn btn-block" :class="classes" @click="add($event)">
</template>
<script>
export default {
computed: {
classes() {
return this.product == 'responseFound' ? 'btn-default' : 'btn-success'
}
}
}
</script>
我的组件vue是这样的:
<template>
<a href="javascript:" class="btn btn-block" :class="{ product == 'responseFound' ? ' btn-default' : ' btn-success' }" @click="add($event)">
...
</template>
存在错误:
invalid expression: :class="{ product == 'responseFound' ? ' btn-default' : ' btn-success' }"
我该如何解决?
只需去掉:class
中的括号:
<template>
<a href="javascript:" class="btn btn-block" :class="product == 'responseFound' ? ' btn-default' : ' btn-success'" @click="add($event)">
...
</template>
如果要添加更多条件,用[]
包起来创建数组:
:class="[product == 'responseFound' ? ' btn-default' : ' btn-success', foo ? 'foo' : 'bar']"
对于这种行为,我会使用计算的 属性。
从您的模板中删除逻辑,并将其移动到您的脚本部分。
<template>
<a href="javascript:" class="btn btn-block" :class="classes" @click="add($event)">
</template>
<script>
export default {
computed: {
classes() {
return this.product == 'responseFound' ? 'btn-default' : 'btn-success'
}
}
}
</script>