2013-11-22 5 views
3

У меня есть следующий подмешать в Джейд:Джейд параметры по умолчанию Mixin

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 иметь значение по умолчанию ''. Я нашел уродливое обходное решение, как показано в моем кодексе. Есть ли лучший способ сделать это в Джейд?

+0

Насколько я знаю: No. –

+0

Но если вы хотите, чтобы класс был пуст, почему бы не оставить его, как это? Если вы установите 'class = active', пока активный не определен, атрибут класса вообще не будет. –

+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> 

Я использую Jade 0.35.0.

Jade не добавляет значения фальши. Вы можете прочитать это в Jade reference в подразделе Boolean Attributes.

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> 
Смежные вопросы