Meteor.js 如何多次使用同名模板

Meteor.js how can I use templates with the same name, multiple times

如何在不同的文件中多次使用相同的模板名称?我的每个页面都有相同的模板命名模式,问题是当 <template name="defaultContent"></template> 已经在另一个页面上使用时,它不能再次使用。

示例网址:

/home
/home/first
/home/second
/home/third

homePage.html

/template: homePage
  template: default
  template: first
  template: second
  template: third

userPage.html

/template: userPage
  template: default
  template: first
  template: second
  template: third

铁路由器代码:

// mainpage
Router.route('/home', function () {
    this.render('homePage');
    this.render('default', {to: 'content'});
});

// subpages
Router.route('/home/:content', function () {
  this.render('homePage');
  var templateName = this.params.content;
  if(Template[templateName]){
    this.render(templateName, {to: 'content'});
  };
});

[update] 顺便说一下,Meteor kitchen 就是这样解决这个问题的:

<template name="CoolPageSubPageBSubPageB1LoremIpsum">

您需要将其包装在每页一个父模板中。如果要重用的模板名为 "defaultContent".

,则使用 {{> defaultContent}} 在其 HTML 中的父模板中添加模板

您不能定义多个具有相同名称的模板。

Meteor 在全局对象 Template(例如 Template.homePage)中定义您的模板。一个对象不能有多次相同的字段,因此多次定义一个模板会导致错误(可能是无声的)。

另外,路由器怎么知道你说的是哪个defaultContent
你怎么会?

您可以简单地定义多个模板(Template.homeDefaultTemplate.userDefault),而不是隐藏模板,这样您就可以轻松地调试和引用它们。