【发布时间】:2016-03-16 13:20:46
【问题描述】:
我有一个使用 Vue 渲染的属性列表(房屋、公寓……)。
每个属性的显示或不显示取决于某些类似于过滤器的按钮。这些“过滤器”设置在我的数据对象中:
data: {
properties: myPropertiesList,
rooms: {
1: false,
2: false,
3: false,
4: false,
},
type: {
flat: false,
house: false,
field: false
}
},
当用户点击选项按钮时,我将这些选项设置为 true 或 false。
目前,我用当前表达式设置 v-show:
v-show="rooms[property.Rooms] && type[property.Category]"
<div v-show="rooms[property.Rooms] && type[property.Category]"
class="col-md-3"
v-for="property in properties"
>
<property :property="property">
</div>
...而且效果很好。但是,我宁愿做这样的事情:
v-show="showProperty(property)"
... 并编写返回 true 或 false 的 showProperty() 函数。
- 这样的事情可能吗?
- 如果是,你在哪里声明函数?我在方法对象中尝试过,但它不起作用。
【问题讨论】:
-
从未使用过 Vue,但您可以在数据对象上定义一个方法,传入 property.Rooms 和 property.Category,这将返回一个布尔值。如果你不能这样做,你可以在数据对象外部编写一个函数,传入对象、property.Rooms 和 property.Category,这也会根据你上面的逻辑返回一个布尔值。
标签: javascript vue.js