Jade中生成的属性

时间:2013-03-04 01:54:38

标签: javascript pug

有没有办法在Jade中使用JavaScript生成属性?

在某些事情上,比如EJS,可以做到:

<div <?- bool ? 'attribute' : 'no attribute' ?>>

显然,翡翠没有相应的东西。当然可以做到:

option(selected=bool)

Jade会为此属性生成适当的HTML输出。但据我所知,没有办法写出比这更复杂的东西。

问题不在于是否需要这样做;没有这个,人们可能会过得很快。但是,有可能在翡翠中,我只是不知道吗?

1 个答案:

答案 0 :(得分:2)

根据具体情况,您有几个选择。

如果'no attribute'试图排除attribute,您可以set it to null or undefined(但正如您已经指出的那样,false也可以有效):

div(attribute=condition ? 'value' : null)

但是,如果您的意图是属性交换,则可以使用embedded markupinterpolation完成此操作:

| <div #{bool ? 'attribute' : 'no-attribute'}>

或者,我相信你必须分别对每一个进行调整:

div(attribute=bool, no-attribute=!bool)

还有一些建议从对象中指定属性,例如#664,它提供了mixin的替代方案。