Meteor:铁路由器不会触发未找到规则

时间:2013-08-19 18:40:26

标签: javascript meteor iron-router

我希望我的Meteor应用程序使用IronRouter进行客户端路由。

我的路由代码如下所示:

Router.map(function() { 
    this.route('story', {
        path: '/story/:_id',
        data: function() {
            return Stories.findOne({displayId: +this.params._id}); 
        },
        notFound: 'storyNotFound'
    });
});

我有2个与此路线相对应的模板:

<template name="story">
    Welcome to story: {{this.displayId}}.
</template>

<template name="storyNotFound">
    Story not found
</template>

问题:'storyNotFound'模板从未呈现,即使

Stories.findOne({displayId: +this.params._id}) 

返回undefined。

相反,“故事”模板使用文本“欢迎来到故事:”进行渲染。

我错过了什么?

1 个答案:

答案 0 :(得分:2)

您是否尝试将notFound:替换为notFoundTemplate? Iron Router示例使用notFound,但我只能在源代码中找到notFoundTemplate,这对我有用。

Router.map(function() { 
    this.route('story', {
        path: '/story/:_id',
        data: function() {
            return Stories.findOne({displayId: +this.params._id}); 
        },
        notFoundTemplate: 'storyNotFound'
    });
});