Meteor中lib目录内的Session.set

时间:2015-02-25 06:01:31

标签: node.js meteor

我的顶级lib目录中有一个名为routes.js的铁路由器代码。在该文件中,我调用前端Session变量,特别是在我的onBeforeAction方法中,如下所示:

    Router.map(function () {

      this.route('homeTemplate',{
        name: 'homeTemplate',
        where: 'client',
        path: '/',
        load: function() {
        $('html, body').animate({
          scrollTop: 0
        }, 400);
        return $('.content').hide().fadeIn(1000);
      },
        waitOn: function() {
        return Meteor.subscribe(COLLECTION_NAMES.PlayerCollection.value);
      },
         onBeforeAction: function(){
           Session.set('active_menu_option','home');
           this.next();
         },
         onAfterAction: function(){
        },
        data: function(){
          return {active_menu_option: {'home':'active'}};
        },
        yieldTemplates: {
          'jumbotronTemplate': {
            to: 'jumbotron'
          }
        }
      });
});

在此设置中调用/使用Session变量是否犹豫不决?我似乎变得不稳定/非确定性行为。

1 个答案:

答案 0 :(得分:1)

我不确定会话的使用情况,但如果你想要的只是根据路线位置设置活动的菜单项,那么这可能会有所帮助:meteor add zimme:iron-router-active

Usage

<nav>
  <ul>
    <li class="{{isActiveRoute regex='dashboard'}}">...</li>
    <li class="{{isActiveRoute regex='dashboard|index'}}">...</li>
    <li class="{{isActiveRoute regex='users' className='on'}}">...</li>
    <li class="{{isActivePath regex='products'}}">...</li>
    {{#if isActiveRoute regex='index'}}
      <li>...</li>
    {{/if}}
    <li class="{{isNotActiveRoute regex='dashboard'}}">...</li>
  </ul>
</nav>
  

这个助手使用正则表达式,这意味着像这样的字符串也可以。

'^dashboard$' // Exact match for 'dashboard'
'^product' // Begins with 'product'
'list$' // Ends with 'list'