流星 + 铁路由器:在页面渲染后渲染
Meteor + Iron Router: Render after pageRender
我最近一直在玩 Meteor,我喜欢它,但是在项目开始 5 分钟后,我在调用 {{ pageRender }} 后渲染模板时遇到了问题(请注意,特别是 {{>renderPage }} 只渲染 Iron Router 被告知要渲染的内容,并忽略任何其他调用。
下面的当前代码工作得很好,因为它仍然是基本配置,但是页脚模板在呈现动态页面之前被调用,这导致页脚出现在所有页面内容之上。我还尝试将页脚文本移动到主文本中.html很好,但页脚仍然在 {{ renderPage }} 内容之前呈现。
铁路由器 js:
Router.route('/', function () {
this.render('Home', {
//data: function () { return Items.findOne({_id: this.params._id}); }
});
});
网页来源:
<head>
<title>NDA Site</title>
<!-- Latest compiled and minified CSS -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.1/css/bootstrap.min.css">
<!-- Optional theme -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.1/css/bootstrap-theme.min.css">
<!-- Latest compiled and minified JavaScript -->
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.1/js/bootstrap.min.js"></script>
</head>
<body>
<!-- Render Navigation -->
{{> navigation }}
<!-- Render Page (Anything gets closed before render is called canceling grid out. Grid has been moved to each template for accuracy)-->
<div class="renderPage-wrapper">{{ renderPage }}</div>
<!--{{> footer }}
footer will not render after renderPage. Footer has been added to main.html as show below-->
<div class="container"><div class="row">
<div class="col-lg-6">
<p>YourSite © {{year}}. All rights reserved.</p>
</div>
<div class="col-lg-6 text-right">
<p>Powered by: NDA Site 0.1.2</p>
</div>
</div></div>
</body>
模板来源:
<template name="footer">
<div class="container"><div class="row">
<div class="col-lg-6">
<p>YourSite © {{year}}. All rights reserved.</p>
</div>
<div class="col-lg-6 text-right">
<p>Powered by: NDA Site 0.1.2</p>
</div>
</div></div>
</template>
有什么变通办法吗?或者解释为什么在客户端运行 {{ renderPage }} 后忽略渲染层次结构?
真诚地威利(医生)W.
首先你的语法是完全错误的,你不应该将引导程序显式添加到项目中,而是运行meteor add mizzao:bootstrap-3
并从头中删除它们。
中的脚本标签创建页脚.js并在其中使
if(Meteor.isClient){
Template.footer.helpers({
year: function(){
return new Date().getFullYear();
}
}
如果您希望所有内容彼此在下面,请将 {{renderPage}} 包装到某个div 中,该div 将为其保留位置,直到加载模板。
另外,你有主页模板吗?因为这就是你在铁路由器中所说的
好的,我想出了一个解决方案,同时我错误地使用了 Iron:router (缺少一个步骤)。
首先,需要定义布局模板。
<template name="layout">
<div id="main-wrapper">
{{>navigation }}
<div class="container-fluid content">
<div class="row">
<div class="col-xs-12 col-sm-12 col-md-10 col-lg-10 pull-right">
{{>yield}}
</div>
<div class="col-xs-12 col-sm-12 col-md-2 col-lg-2 pull-left">
{{>sidebar}}
</div>
</div>
</div>
<!--{{>footer }} // Normally you would render your footer here at the bottom of the page. Since the project i am working on consist of a static sidebar i moved the {{>footer}} to {{>sidebar}} -->
</div><!-- Particle JS -->
<!--<script type="text/javascript" src="js/particles.js"></script>
<script src="http://vincentgarreau.com/particles.js"></script>
<script type="text/javascript" src="/js/app.js"></script>-->
</template>
然后需要设置布局配置。
// Configure Iron:Router
Router.configure({
loadingTemplate: 'loading',
notFoundTemplate: 'notFound',
layoutTemplate: 'layout'
});
主要的.html或你的项目.html有你的头和身体应该看起来像这样。
<head>
<title>Foobar</title>
<link rel="icon" href="http://www.aperturestudiosmedia.com/favicon.ico">
</head>
<body>
<!-- Render Krater -->
</body>
相关文章:
- 流路由器流星的历史
- 动态路径用于流星/铁路由器
- 流星JS:铁路由器点击按钮
- 流星和铁路由器中的gzip和minimy服务器路由响应
- 流星+铁路由器:模板完成后加载流播放器
- 流星 - 添加带有熨斗的路由后无法提交用户.路由器到登录和注册表单
- 无法读取流星中对象的属性's iron路由器's路线
- 与kadira相比,使用react路由器有什么好处:流星流路由器
- 流星铁路由器动态段不工作
- 仅在部署时出现流星铁路由器初始屏幕错误
- 流星铁路由器 - 如何等待(使用加载模板)一个会话.get
- 流星 - 页面刷新导致在为路由器获取数据时闪烁
- 流星铁路由器设置覆盖路线
- 流星 + 铁路由器:在页面渲染后渲染
- 支持流星和铁路由器中具有嵌套属性的多个参数
- 铁路由器流星只发布一个收藏中的一个项目
- 用铁路由器流星制定路线
- 铁:路由器+流星-不能同时添加POST数据到数据库和渲染路由
- 如何获得最后/以前访问的路线与铁路由器-流星
- 为铁路由器流星的路径