玉混入默认参数

问题描述:

我有以下混入在玉:玉混入默认参数

mixin indicator(slide_to, active) 
    - active = active || '' // this is an ugly method to create a default value 
    li(class=active, data-target='#' + CAROUSEL_ID, data-slide-to=slide_to) 

,我这样称呼它:

+indicator(1) 
+indicator(2, 'active') 

我想要的参数active拥有的''默认值。我发现了我的代码示例中显示的丑陋解决方法。在Jade中有更好的方法吗?

+0

据我所知: –

+0

不可以,但如果你希望类是空的,为什么不只是离开它喜欢它?如果在未定义活动时设置“class = active”,则根本不会有任何class属性。 –

+1

不,如果没有设置活动,会有class = undefined – netimen

这个例子:

mixin test(slide_to, active) 
    li(class=active, data-slide-to=slide_to) 

+test('a') 
+test('a', 'b') 

编译成这个HTML对我来说:

<li data-slide-to="a"></li> 
<li data-slide-to="a" class="b"></li> 

我用玉0.35.0。

Jade不添加falsy值。您可以在子章节布尔属性中的Jade reference中阅读此内容。

答案需要更新,因为今天显然是可行的。

mixin test(slide_to= 'a', active='') 
    li(class=active, data-slide-to=slide_to) 

+test() 
+test('b') 
+test('c', 'active') 

编译成这个HTML对我来说:

<li class="" data-slide-to="a"></li> 
<li class="" data-slide-to="b"></li> 
<li class="active" data-slide-to="c"></li>