Meteor JS:在布局中包含动态名称模板

时间:2015-04-20 08:51:03

标签: node.js meteor pug

我有这个基本布局。我想要包含一个动态标头包含在模板中。 +标题应该像这样+ {{get_header_name}}。 get_header_name是一个辅助函数。我试过这个想法,但玉会抛出一个错误。任何想法如何让它变得动态?

basic.jade

template(name="basicLayout")
    #main
        header
            +header // <--- make this a dynamic using helper (get_header_name)
            +search
        else
            +yield
        footer
            +footer

1 个答案:

答案 0 :(得分:1)

如果您不使用Iron Router,则可以使用Template.dynamic

定义使用模板名称返回会话的帮助程序:

Session.set('headerTemplateName', 'defaultHeader');
Template.basicLayout.helpers({
  headerTemplate: function() {
    return Session.get('headerTemplateName');
  }
});

在basicLayout模板中使用该帮助器:

+Template.dynamic template=headerTemplate

现在,当您在应用中的任何位置更改会话headerTemplateName的值时,您的标题模板将根据它更改:

Session.set('headerTemplateName', 'anotherHeader');

如果您使用铁路由器,请查看布局和区域:https://github.com/iron-meteor/iron-router/blob/devel/Guide.md#layouts