我想传递一个变量给一个组件,它应该作为class
添加到div
中。然而,Vue添加了variable
的名称而不是内容。
所以我传递了包含red
的prop color
。
我想要的:<div class="red">2</div>
标签:<div class="color">2</div>
我认为这是一个菜鸟问题,所以很抱歉。也许有更好的方法来做到这一点。
谢谢你帮我
以下是我的组件:
<template>
<div class="btn btn-outline-primary cell"
:class="{color}"
:id="id">
{{ number }}
</div>
</template>
<script>
export default {
name: "TileElement",
props: ["id", "number", "color"]
}
</script>
<style scoped>
.green {
color: green;
}
.red {
color: red;
}
.yellow {
color: yellow;
}
.cell {
display: inline-block;
float: left;
margin: 0.1em;
text-align: center;
background-color: lightgray;
width: 2.7em;
height: 2.7em;
}
</style>
父组件:
<template>
<div class="row">
<TileElement
v-for="tile in tiles"
v-bind:key="tile.id"
v-bind:number="tile.number"
v-bind:color="tile.color"
></TileElement>
</div>
</template>
<script>
import TileElement from './TileElement.vue';
export default {
name: "TileRow",
components: {
TileElement
},
data: function () {
return {
tiles: [
{id: 1, number: 1, color: "green"},
{id: 2, number: 2, color: "red"},
{id: 3, number: 3, color: "yellos"}
]
}
}
}
</script>
4条答案
按热度按时间mhd8tkvw1#
如果你只需要传递一个类,没有任何条件或其他类似的东西,那么你可以简单地使用数组来传递一个或任何其他数量的类:
但这不是你一个人能做到的。
https://v2.vuejs.org/v2/guide/class-and-style.html
xdnvmnnf2#
:class="color"
也可以工作:ix0qys7i3#
尝试动态导入类名
0x6upsns4#
这是动态创建依赖于变量的类的简单方法