如何在不同文件中多次使用相同的模板名称?我为每个页面都有相同的模板命名模式,问题是当例如<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'});
};
});
[更新]顺便说一下,这就是Meteor kitchen解决这个问题的方法:
<template name="CoolPageSubPageBSubPageB1LoremIpsum">
答案 0 :(得分:1)
您需要将其包装在每页的一个父模板中。如果您要重用的模板名为&#34; defaultContent&#34;。
,则使用{{> defaultContent}}
将模板添加到其HTML模板中。
答案 1 :(得分:1)
您无法定义多个具有相同名称的模板。
Meteor在全局对象Template
中定义模板(例如,Template.homePage
)。一个对象不能有多次相同的字段,因此定义一个模板多次会导致错误(可能是无声的)。
另外,路由器怎么知道你在谈论哪个defaultContent
?
你怎么样?
您可以简单地定义多个模板(Template.homeDefault
,Template.userDefault
),而不是阴影模板,这些模板可以让您调试它们并轻松引用它们。