0

我正在使用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>
4

1 回答 1

5

首先,我假设你想要CHAT在同一行,a因为你不想要一个<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声明是否有必要。

于 2012-07-29T08:14:12.193 回答