因此,我已经开始学习Meteor,并试图了解如何正确格式化模板。这是我设置项目的方式:
所以我有两个问题:
首先,我想将A作为基本模板,这意味着它将具有样式和javascript标签以及“样式”和“脚本” 可选块,以防孩子模板要添加额外的文件。 我该怎么做?我尝试了常规方法:
第二个问题,正如我描述的那样,我目前正在使用路由做什么,将块本地化(?)到当前文件的最佳方法是什么?。
谢谢大家:)
答案 0 :(得分:0)
我不确定100%表示“块”是什么意思,但是我假设您想让A成为其他所有内容都适合的模板,然后再添加其他页面?
如果是这样,听起来您想使用动态模板,并以A作为布局。
这里是一个布局示例,该布局从我的一个项目中导入其他模板(实际上是导入两个常量模板(loginNavbar和modalWindow)以及动态模板,具体取决于我对它的调用。您可以添加尽可能多的模板样式和其他您想要的布局本身):
<template name="loginLayout">
<div class="loginNavbarTemplateDiv">
{{> loginNavbar}}
</div>
<div class="loginContentTemplateDiv">
{{> Template.dynamic template=content}}
</div>
{{> modalWindow}}
</template>
然后,我的routes.js如下所示(将外部loginLayout带有login或register的内部内容):
FlowRouter.route('/login', {
name: 'login',
action: function() {
BlazeLayout.render("loginLayout", { content: 'login' });
}
});
FlowRouter.route('/register', {
name: 'register',
action: function() {
BlazeLayout.render("loginLayout", { content: 'register' });
}
});
总体而言,我不会有两个名称相同的模板,而且如果您正确地构建文件/应用程序,也应该不会太麻烦。
请告诉我这是否有帮助,还有其他问题,我很乐意为您提供帮助。
-
如果您想了解更多信息,可以在这里找到有关动态模板的出色教程:
https://themeteorchef.com/tutorials/using-dynamic-templates
以及有关如何构建Meteor应用程序文件的指南(帮助大量工作并使一切变得更好):