【问题标题】:Jade mixin default parametersJade mixin 默认参数
【发布时间】:2013-11-22 07:53:27
【问题描述】:

我在 Jade 中有以下 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 具有默认值''。我发现了我的代码示例中显示的丑陋的解决方法。在 Jade 中有没有更好的方法来做到这一点?

【问题讨论】:

  • 据我所知:没有。
  • 但是如果你想让这个类是空的,为什么不让它保持原样呢?如果您在未定义活动的情况下设置class=active,则根本不会有任何类属性。
  • 不,如果 active 没有设置,会有 class=undefined

标签: pug


【解决方案1】:

这个例子:

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 中阅读此内容。

【讨论】:

    【解决方案2】:

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

    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>
    

    【讨论】:

      猜你喜欢
      • 2019-10-05
      • 2015-06-30
      • 2015-09-29
      • 2011-12-13
      • 1970-01-01
      • 1970-01-01
      • 2014-02-08
      • 2015-10-27
      • 1970-01-01
      相关资源
      最近更新 更多