Vue.js v-if属性

n1_*_*n1_ 3 javascript vue.js

假设我有这段代码

table(my-attr="value")
    ...complex component Jade...
Run Code Online (Sandbox Code Playgroud)

我想my-attr基于交付给组件的属性来渲染该对象。由于v-if适用于整个元素,所以我无法做类似的事情

table(my-attr="value", v-if="myProp")
table(v-else)
Run Code Online (Sandbox Code Playgroud)

因为我必须复制表中的所有代码。

我该如何实现?

Lin*_*org 6

您可以v-bind直接使用或插值{{}}

// (sorry, no jade)
<table v-bind:attribute1="someMethod" attribute2="{{anotherMethod}}">
Run Code Online (Sandbox Code Playgroud)

现在someMethodanotherMethod应该是数据,组件的计算属性或方法,并且应该返回属性的期望值或false。在后一种情况下,该属性将根本不会添加到该元素。

更新:注意:属性的插值已在Vue 2中删除