【发布时间】:2017-05-31 14:17:11
【问题描述】:
我想了解在 Vue.js 中有条件地呈现 HTML 属性的最佳方法是什么。例如,如果有当前实例的工具提示消息,则添加 data-toggle="tooltip"。
我现在的代码:
<span
:data-toggle="!!col.col_spec.tooltip ? 'tooltip' : ''"
:title="col.col_spec.tooltip"
>
{{ col.col_spec.title }}
</span>
不过,我不太喜欢第 2 行...即使我在这里使用计算属性,当没有可显示的工具提示时,我宁愿根本没有 data-toggle 属性。
【问题讨论】:
-
如果在没有工具提示的情况下您根本不希望该属性存在,那么我可能不会在模板中这样做,而是在mounted() 或类似的东西中这样做。跨度>
-
@str 不完全正确。 “必需”是一个“布尔属性”,它有点简单。我的问题涉及“一般属性”。
-
@pilat 不,完全一样。虽然
required确实是boolean attribute,但您不能将false值传递给它。 “元素上的布尔属性的存在表示真值,而属性的缺失表示假值。” 使用它的唯一方法是将它放在 DOM 中,或者不要。 -
好吧,看起来不管它是什么类型的属性,如果它传递了'false',它就不会被渲染。正是我需要的! jsbin.com/lamudoqucu/edit?html,js,output