Iron-router的this.render函数不呈现

时间:2015-09-28 12:16:59

标签: meteor 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(...),此时它将显示标准的“找不到路由”错误。 此外,我尝试删除Router.configure(...)并将this.layout('main')添加到Router.route(...),但尝试不使用全局模板,而是使用路由模板。然后浏览器不显示任何内容。

1 个答案:

答案 0 :(得分:1)

你的代码非常好。我也遇到过这个问题。铁:路由器包似乎缺少了ejson的依赖性。

将ejson添加到您的应用中,它应该可以正常工作。

meteor add ejson

我确定什么时候铁:路由器已更新,这将得到解决。