如何在渲染上设置流星模板标题?

时间:2015-02-20 01:10:11

标签: javascript meteor iron-router spacebars

我有一行动态代码:

 <label>{{title}}</label>
//template name="header"

我正在使用铁:路由器,该应用程序现在非常简单:

Router.configure({
  layoutTemplate: 'ApplicationLayout'
})

Router.route('/', {
  template: "home"
})

Router.route('/scientific', {
  template: "scientific"
})

我想要一个不依赖于Session作为动态呈现{{title}}的方法的解决方案。

理想情况下,我想在我的路由器代码中的某处定义此标题,并让我的标题自动获取它。我并不特别想在我的Template.rendered回调中做很多Session.set / get over(我似乎在使用Semantic-UI复选框时遇到了这个问题)。

你们有没有优雅,超级简单的解决方案?

PS:模板'header'位于ApplicationLayout模板中。 ApplicationLayout标题下方有{{> yield}}

1 个答案:

答案 0 :(得分:6)

一个可行的选择是将您的标题存储在路线选项中,如下所示:

Router.route("/",{
  template:"home",
  title:"Welcome Home !"
});

Router.route("/scientific",{
  template:"scientific",
  title:"Scientific stuff"
});

然后,您可以根据(无效)当前路径控制器在标题模板上定义标题助手。

Template.header.helpers({
  title:function(){
    return Router.current().route.options.title;
  }
});