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.homeDefault
、Template.userDefault
),而不是隐藏模板,这样您就可以轻松地调试和引用它们。
如何在不同的文件中多次使用相同的模板名称?我的每个页面都有相同的模板命名模式,问题是当 <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.homeDefault
、Template.userDefault
),而不是隐藏模板,这样您就可以轻松地调试和引用它们。