在Jade模板中使用流星助手选择类的最佳(或任何)方式?

时间:2014-05-23 02:12:23

标签: meteor pug meteor-blaze

我目前正在将现有项目从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语法,还是使用Jade中的把手?

1 个答案:

答案 0 :(得分:4)

您可以像使用pathFor一样执行此操作,但会将结果分配给class的{​​{1}}:

li

这种语法有望改进。留意issue #9