玉混合麻烦

时间:2012-07-28 23:51:41

标签: node.js express pug

我正在使用jade的mixin并遇到了一些麻烦:

代码:

  mixin renderLink(linkName,linkUrl,linkClass,other)
    - var active = req.url==linkUrl?'active':''
    li(class=[active,linkClass])
      a(href=linkUrl) #{linkName}
      #{other}

  ....
  .nav-collapse
    ul.nav
      +renderLink('HOME','/')
      +renderLink('CHAT','/chat',null,'span.badge.badge-warning 2')

我想要的是:

li
  a(href="#") 
    CHAT
    span.badge.badge-warning 2

如何修改#{other}以获得我想要的内容? 感谢

---谢谢,请使用:

  mixin renderLink(linkName,linkUrl,linkClass)
    - var active = req.url==linkUrl?'active':''
    li(class=[active,linkClass])
      a(href=linkUrl) #{linkName}
        block

得到了我想要的东西:

<li class=" ">
  <a href="/chat">消息<span class="badge badge-warning">2</span></a>
</li>

1 个答案:

答案 0 :(得分:5)

首先,我假设您希望CHATa位于同一行,因为您不需要<chat></chat>元素。

没有记录(在官方文档中),但你想要的是使用一个块。试试这个:

mixin renderLink(linkName,linkUrl,linkClass,other)
  - var active = req.url==linkUrl?'active':''
  li(class=[active,linkClass])
    a(href=linkUrl) #{linkName}
      if block
        block

....
.nav-collapse
  ul.nav
    +renderLink('HOME','/')
    +renderLink('CHAT','/chat')
      span.badge.badge-warning 2

我不确定if block声明是否必要。