VueJS仅在数据变量为真时才绑定prop

时间:2018-03-14 23:27:47

标签: vue.js vuejs2 vuetify.js

如何仅在变量设置为true时绑定属性?

<template>
    <v-list-tile :class="{[$color]: isItemSelected, [$primaryText]: isItemSelected}" :href="route">
        <v-list-tile-action>
            <v-icon :color="$primaryIcon">{{ icon }}</v-icon>
        </v-list-tile-action>
        <v-list-tile-content>
            <v-list-tile-title>{{ title }}</v-list-tile-title>
        </v-list-tile-content>
    </v-list-tile>
</template>

<script>
    export default {
        name: 'list-tile-text-icon',
        props: ['icon', 'title', 'route'],
        data: () => ({
            isItemSelected: false
        }),
        created() {
            this.isItemSelected = window.location.href === this.route;
        }
    }
</script>

在第4行,我只有在:color="$primaryColor"变量等于isItemSelected时才需要绑定true

2 个答案:

答案 0 :(得分:3)

v-bind中使用的值是JavaScript 表达式,因此您可以使用Conditional (ternary) operator

<v-icon :color="isItemSelected ? $primaryIcon : null">

注意:我称之为v-bind,因为:只是v-bind的简写。即:color=""v-bind:color=""

相同

答案 1 :(得分:0)

Vue class and style binding doc

这是关于vue类和样式绑定的官方文档,

细节:

<v-list-title :class="{someClassYouDefine: isItemSelected}"> </v-list-title>

然后写下你想要的风格

<style>
   .someClassYouDefine {
      color: $primaryColor;
   }
</style>