代码如下:
<span :class="{}">{{scope.row.status | formatOrderStatus}}</span>
想根据scope.row.status的值(-1——6),分别对应给span 赋7个不同的classname,status的值和classname是一一对应关系,有什么简便的写法吗?
代码如下:
<span :class="{}">{{scope.row.status | formatOrderStatus}}</span>
想根据scope.row.status的值(-1——6),分别对应给span 赋7个不同的classname,status的值和classname是一一对应关系,有什么简便的写法吗?
既然你的scope.row.status的值是-1——6 那可以就直接写成 :class="'某某前缀' + ${scope.row.status} "
然后你的像是表里 定义7个这样规则的class就行了
写一个方法
test (i) {
switch (+i) {
case -1:
return 'class1'
...
}
}
然后在html里面
<div :class="test(scope.row.status)"></div>
简便的话用数组
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<div id="box">
<div v-for="(item,index) in items" >
<h1 :class="addclass(item.status)">111</h1>
</div>
</div>
<script src="https://cdn.jsdelivr.net/npm/vue"></script>
<script>
var app=new Vue({
el:'#box',
data:{
items:[{status:'-1'},{status:'0'},{status:'1'},{status:'2'},{status:'3'},{status:'4'}]
},
methods: {
addclass:function(i){
var arr = ['b','c','d','e','f'];
if(i==-1){
return 'a'
}else{
return arr[i];
}
}
}
});
</script>
</body>
</html>
如果你是想根据不同的状态呈现不同的颜色或者其他需求,并且想规范一点的话,你可以写个方法:
如下所示:
test (status) {
switch (+status) {
case -1:
return 'colorRed'
...
}
}
<div :class="test(scope.row.status)"></div>
9 回答1.7k 阅读✓ 已解决
6 回答1.5k 阅读
3 回答1.4k 阅读✓ 已解决
4 回答1.2k 阅读✓ 已解决
2 回答1.2k 阅读✓ 已解决
3 回答1k 阅读
3 回答1.3k 阅读✓ 已解决
提供比较简单的一个: