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