正如标题所说,this.render不会呈现它提供的模板。这是router.js
中的代码:
Router.configure({
layoutTemplate: 'main'
});
Router.route('/', function(){
this.render('postsList');
});
包含布局模板的文件main.html
:
<template name='main'>
<div class='container'>
<header class='navbar'>
<div class='navbar-inner'>
<a class='brand' href='/'>MyApp</a>
</div>
</header>
<div id='main' class='row-fluid'>
{{> yield}}
</div>
</div>
</template>
包含传递给this.render()
函数的postsList模板的文件
<template name='postsList'>
<div class='posts'>
{{#each posts}}
{{> postItem}}
{{/each}}
</div>
</template>
因此,当我转到localhost:3000/
时,该页面仅显示main
模板,而不显示postsList
模板。但是,没有错误,除非我完全删除Router.route(...)
,此时它将显示标准的“找不到路由”错误。
此外,我尝试删除Router.configure(...)
并将this.layout('main')
添加到Router.route(...)
,但尝试不使用全局模板,而是使用路由模板。然后浏览器不显示任何内容。
答案 0 :(得分:1)
你的代码非常好。我也遇到过这个问题。铁:路由器包似乎缺少了ejson的依赖性。
将ejson添加到您的应用中,它应该可以正常工作。
meteor add ejson
我确定什么时候铁:路由器已更新,这将得到解决。