vue.js - 如何同时绑定(bind)2个类?

标签 vue.js vuejs2

如果元素是当前元素 (bg-blue-400),我需要将背景色设为蓝色,背景色为绿色 (bg-green-400) - 已完成,深色 ( bg-dark-400) - 未完成(只能激活一个)。例如我想要的:

enter image description here

我的代码:

<div v-bind:class="{'bg-blue-400' : isSelected(task), 'bg-grey-400' : isNotCompleted(task)}" 
class="icon-block s30 text-white" >{{index+1}}</div>

结果:

enter image description here

最佳答案

将这种逻辑放在脚本标签中,而不是模板中。

根据您想要的行为类型,您需要在将逻辑放在计算属性或方法中做出选择。 (问你自己这个问题:当你的任务改变时,你想要 css 类改变吗?如果是这样使用计算属性,否则使用方法)

另一个改进(因为您使用的是 v-for)是将您的个人任务放在组件中。

任务组件:

<task v-for="task in tasks" :task="task"></task>

任务组件:

<template>
    <div v-bind:class="cssClass">
    <p> {{ task.name }} </p>
    </div>
</template>

<script>
    computed: {
      cssClass: function () {
        return {
         'bg-blue-400' if this.task.selected
        }
      }
    }
</script>

关于vue.js - 如何同时绑定(bind)2个类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43234869/

相关文章:

vue.js - 如何使用 VueJS 路由器链接主动样式

vue.js - 使用对象通过 v-for 生成选择选项

javascript - 如何在 VeeValidate 规则之间使用多范围

javascript - 当我单击它们然后将该数据传递到我的变量时如何获取特定树节点的 ID

python - 通过 axios 将数据发送到 django rest 框架时获取错误请求 400

javascript - Vue2 回调中发布 axios 请求无法正常工作

javascript - 如何动态导入markdown文件

javascript - Vue.js 无法使用模板正确渲染

vue.js - 如何为 Electron 应用程序创建 "always on top Component"

javascript - 如何更改b-table Vue JS中列数据的颜色