Iron-router 的 this.render 函数不呈现
Iron-router's this.render function does not render
正如标题所说,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(...)
,此时它会显示标准的'route not found'错误。
另外,我尝试不使用全局模板,而是使用路由模板,方法是删除 Router.configure(...)
并将 this.layout('main')
添加到 Router.route(...)
。然后浏览器什么都不显示。
您的代码非常好。我也遇到了这个问题。 iron:router 包似乎缺少 ejson 依赖项。
将 ejson 添加到您的应用程序,它应该可以工作。
meteor add ejson
我确定 iron:router 更新后,这个问题就会得到解决。
正如标题所说,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(...)
,此时它会显示标准的'route not found'错误。
另外,我尝试不使用全局模板,而是使用路由模板,方法是删除 Router.configure(...)
并将 this.layout('main')
添加到 Router.route(...)
。然后浏览器什么都不显示。
您的代码非常好。我也遇到了这个问题。 iron:router 包似乎缺少 ejson 依赖项。
将 ejson 添加到您的应用程序,它应该可以工作。
meteor add ejson
我确定 iron:router 更新后,这个问题就会得到解决。