2013-11-22 89 views
3

我有以下混入在玉:玉混入默認參數

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

回答

5

這個例子:

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中閱讀此內容。

1

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

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>