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

Meteor JS: include dynamic name template in layout

我有这个基本布局。我想在模板中包含一个动态 header。 +header应该是这样+{{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

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

定义 returns session 模板名称的助手:

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

在您的 basicLayout 模板中使用该助手:

+Template.dynamic template=headerTemplate

现在,当您在应用中的任何位置更改 session headerTemplateName 的值时,您的 header 模板将随之更改:

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

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