2013-03-04 90 views
0

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

的东西,像EJS,一个可以这样做:

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

中有玉没有等价的,显然。当然我可以这样做:

option(selected=bool) 

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

问题不在于是否需要这个问题;没有这个可能会得到。但是,在Jade中可能,我只是不知道?

回答

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 s的可能替代方案。

+0

有趣。唯一的问题是它不是Jade。如果我想为这个元素嵌套子元素,它是如何在Jade模板的缩进流中起作用的? – Sam 2013-03-04 08:31:45