我需要将动态变量传递到v-if
属性中。
我尝试了多种方法,但没有产生预期的结果。
到目前为止,我有这个:v-if="customDropdown === {{row.name}}"
请问如何有条件动态地渲染元素? 预先谢谢你。
答案 0 :(得分:1)
您不能在Vue指令/属性中使用插值。
要绑定到v-if
或v-for
,请直接使用变量:
<div v-if="value.someProperty"></div>
要绑定到其他属性,请使用v-bind:
或速记:
,如下所示:
<div :directive="value"></div>
模板语法documentation
答案 1 :(得分:1)
首先,您无法插入指令/属性,其次,尚不清楚,但我认为您想在通过数组迭代时检查条件。
您可以使用以下模板结构:
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script>
<div id="app">
<div
v-for="row in arrayList"
v-if="customDropdown === row.name"
>
Show row content: {{ row }}
</div>
</div>
使用以下数据结构来实现您的目标:
new Vue({
el: '#app',
data: {
customDropdown: 'first',
arrayList: [
{
name: 'first',
},
{
name: 'second',
},
],
},
})
答案 2 :(得分:0)
只需使用属性名称,
例如
export default {
data() {
return {
var: true
}
}
}
html
<span v-if="var">I only appear when the condition is true</span>
答案 3 :(得分:0)
您需要将row.name
绑定到vue中的数据对象:
export default {
data() {
return {
customDropdown: 'something',
row: {name: 'something'},
}
}
}
,然后在v-if
语句中使用它:
<div v-if="customDropdown == row.name">You see me if customDropdown is equal to row.name</div>