Jade mixin应该返回要附加到元素的类
我试图追加一个特定的类到一个元素取决于一个switch-statement的结果。 下面的代码只是为了澄清。
mixin changeColor(color) case color when 1 .blue when 2 .green default .red div.foo +changeColor(1) p Bar
应该导致
<div class="foo blue"> <p>Bar</p> </div>
foo元素可能包含多个子元素,而不仅仅是p
标签。
这里没有JS的例子,“纯” 玉 :
mixin changeColor(color) case color when 1 div(class!=attributes.class).blue block when 2 div(class!=attributes.class).green block default div(class!=attributes.class).red block +changeColor(1)(class="foo") h1 More elements p. Bar .adiv p Bar
输出为1
:
<div class="foo blue"> <h1>More elements</h1> <p>Bar</p> <div class="adiv"> <p>Bar</p> </div> </div>
尝试在Jade中使用js函数,像这样
- var changeColor = function(color) {var returnedColor;switch (color) {case 0:returnedColor = 'blue';break;case 1:returnedColor = 'green';break;default :returnedColor = 'red';break;}return returnedColor;} div.foo(class=changeColor(1)) p Bar