2013-08-19 2 views
0

Я бы хотел, чтобы мое приложение Meteor использовало IronRouter для маршрутизации на стороне клиента.Метеор: IronRouter не срабатывает notFound rule

Мой код маршрутизации выглядит следующим образом:

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}) 

Возврат не определен.

Вместо этого шаблон «история» отображается с текстом «Добро пожаловать в историю:».

Что мне не хватает?

ответ

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' 
    }); 
}); 
+0

Спасибо, исходный код по документации :) –

+0

Эй, извините за путаницу. Я убираю много из этого в ветке dev. Как правило, все, что относится к шаблонам, имеет «Шаблоны» в конце опции. notFoundTemplate, layoutTemplate, yieldTemplates, шаблон. – cmather

Смежные вопросы