1

我目前正在将现有项目从 Meteor.js 中的 html 模板迁移到 Jade 模板,并意识到我的一些帮助函数不起作用。我已经尝试过模板中的把手样式,但是当用于更改类选择器时它不起作用。客户端或服务器上也没有抛出错误消息。我怀疑在玉编译后调用把手太久会影响玉选择器。

template(name='header')
  header
    nav.navbar.navbar-inverse(role='navigation')
      .navbar-header
        button.navbar-toggle(type='button', data-toggle='collapse', data-target='.nav-collapse')
          span.sr-only Toggle navigation
          span.icon-bar
          span.icon-bar
          span.icon-bar
        a.navbar-brand(href='/')
          img(src='/logo.png', alt='Company Name')
        a.navbar-brand(href='/') Company Name
      //- Collect the nav links, forms, and other content for toggling
      #bs-example-navbar-collapse-1.collapse.navbar-collapse
        if hasValidUser
          ul.nav.navbar-nav
            if isInRole 'MajorDomo'
                +adminHeader

          ul.nav.navbar-nav
            li.dropdown +notifications
        #bs-example-navbar-collapse-1.collapse.navbar-collapse
          ul.nav.navbar-nav.navbar-right
            +loginButtons
//- This does nothing, but gets called.
template(name='adminHeader')
  //- should call into the helper but doesn't 
  li.{{active 'faq'}}
    a(href='{{pathFor "faq"}}') FAQ 

助手永远不会被调用:

# Coffeescript
Template.adminHeader.helpers
  "active": (path) ->
    console.log 'active called with: ', path
    if Router.current().route.name is path
        return "active"

那么我将如何在 Jade 中动态设置类名,或者使用带有 Meteor Blaze 的翡翠语法,或者在 Jade 中使用把手?

4

1 回答 1

4

您可以像使用 一样执行此操作pathFor,但将结果分配给classfor li

template(name='adminHeader')
  li(class='{{active "faq"}}')
    a(href='{{pathFor "faq"}}') FAQ

这种语法有望改进。密切关注问题#9

于 2014-05-23T03:26:29.927 回答