【发布时间】:2020-03-19 08:10:17
【问题描述】:
我正在循环遍历元素并使用顶部和左侧 CSS 属性定位 div:
<div
v-for="coord in coords"
:style="{ top: coord.y + 'px', left: coord.x + 'px' }"
></div>
有时我需要使用 bottom 而不是 top 属性(这取决于我的 Vuex 存储值之一)。如何动态定义是否应该使用top 或bottom CSS 属性?
我尝试使用计算属性 isTopOrBottom,它会返回“顶部”或“底部::style="{ isTopOrBottom: coord.y + 'px', left: coord.x + 'px' }"”。但这在 Vue 中不起作用。
【问题讨论】:
-
您可以只创建一个组件
<coord>,然后为样式定义一个computed()属性。在计算属性中,您可以根据您的条件返回一个对象。或者 - 如果您不想创建单独的组件 - 您可以定义一个方法并从模板中调用它。然后,根据您的条件传递坐标并返回一个对象。方法调用不像计算属性那样被缓存。