玉混合麻烦

ati*_*n25 0 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')
Run Code Online (Sandbox Code Playgroud)

我想要的是:

li
  a(href="#") 
    CHAT
    span.badge.badge-warning 2
Run Code Online (Sandbox Code Playgroud)

如何修改#{other}以获得我想要的东西?谢谢

---谢谢,用这个:

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

并得到我想要的:

<li class=" ">
  <a href="/chat">??<span class="badge badge-warning">2</span></a>
</li>
Run Code Online (Sandbox Code Playgroud)

Jon*_*Ong 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
Run Code Online (Sandbox Code Playgroud)

我不确定该if block陈述是否必要.