2013-08-19 2 views
0

내 유성 앱이 클라이언트 측 라우팅에 IronRouter을 사용하고 싶습니다.Meteor : IronRouter가 notFound 규칙을 트리거하지 않음

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

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

문제 : 다음 'storyNotFound'템플릿 렌더링 결코 아닌

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

나는이 경로에 해당하는 2 템플릿이 다음과 같이

내 라우팅 코드 보인다 심지어 때

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

은 정의되지 않은 값을 반환합니다.

대신 'story'템플릿은 "Welcome to story :"텍스트로 렌더링됩니다.

무엇이 누락 되었습니까?

답변

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