javascript - 如何将类绑定到 Vue.js 中的两个以上选项?
问题描述
我有以下 Vue.js 绑定的 HTML:
<span :class="[obj.status === 'Online' ? 'badge-success' : 'badge-danger', 'badge badge-pill']">{{obj.status}}</span>
我想添加另一个变体:
如果obj.status === 'Updating'
那么类应该是badge-warning
。
有效实现这一目标的最佳方法是什么?我想我可以在现有的三元组中添加另一个三元组,但它看起来会很乱。
解决方案
<span v-if="obj.status === 'Online'" class="badge-success">
{{obj.status}}
</span>
<span v-if="obj.status === 'Updating'" class="badge-warning">
{{obj.status}}
</span>
<span v-if="obj.status !== 'Updating' && obj.status !== 'Online'" class="badge-default">
{{obj.status}}
</span>
您可以根据状态属性有条件地呈现。
另一种方法是切换您的班级:
new Vue({
el: "#app",
data: {
obj: {
status: 'Online'
}
},
methods: {
getBadgeClass(status) {
switch(status) {
case 'Online':
return 'badge-success';
case 'Updating':
return 'badge-warning';
default:
return 'badge-default'
}
}
}
})
然后在你的模板中你可以这样做:
<span :class="getBadgeClass(obj.status)">{{obj.status}}</span>
推荐阅读
- windows - 通过 GUI 时间线 Windows 窗体 C# 控制值
- c++ - 如何将 char 数组声明为函数参数?或者告诉我这段代码还有其他问题?
- virtual-machine - 谷歌云计算:创建 GCP 虚拟机:超出配额“NVIDIA_K80_GPUS”。限制:欧洲西部地区 1.0
- xamarin.forms - Visual Studio 2019 加载资源时速度极慢
- css - Safari 关键帧动画中的多个属性
- swift - TextField 中的占位符文本颜色
- typescript - 在打字稿中,如何使用泛型来约束和描述函数的返回值类型?
- c - Linux 内核加密 API
- c# - 如何在 .net 核心的返回 xml 中删除 xmlns:xsi 和 xmlns:xsd?
- swift - UISearchBar 的 set_cancelButtonText: ivar 被禁止