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 更新后,这个问题就会得到解决。