有没有办法在Jade中使用JavaScript生成属性?
在某些事情上,比如EJS,可以做到:
<div <?- bool ? 'attribute' : 'no attribute' ?>>
显然,翡翠没有相应的东西。当然可以做到:
option(selected=bool)
Jade会为此属性生成适当的HTML输出。但据我所知,没有办法写出比这更复杂的东西。
问题不在于是否需要这样做;没有这个,人们可能会过得很快。但是,有可能在翡翠中,我只是不知道吗?
答案 0 :(得分:2)
根据具体情况,您有几个选择。
如果'no attribute'
试图排除attribute
,您可以set it to null
or undefined
(但正如您已经指出的那样,false
也可以有效):
div(attribute=condition ? 'value' : null)
但是,如果您的意图是属性交换,则可以使用embedded markup和interpolation完成此操作:
| <div #{bool ? 'attribute' : 'no-attribute'}>
或者,我相信你必须分别对每一个进行调整:
div(attribute=bool, no-attribute=!bool)
还有一些建议从对象中指定属性,例如#664,它提供了mixin
的替代方案。