我使用路径postDetail
使用路由器/posts/:postId
。
我想检查帖子是否确实存在。如果帖子不存在,我想改为显示postList
路线。
我该怎么做?我想我可以使用triggersEnter
;但是,数据是在模板中订阅的,所以也许我不能在路由器中使用triggersEnter
。
一种简单的方法是使用模板助手中的变量doesExists
填充模板,然后使用
{{#if doesExists}}
[...]
{{else}}
{{> postList}}
{{/if}}
但我不认为这是一种非常聪明的方法,因为我必须在很多不同的模板中执行此操作,并且我无法使用此方法将用户重定向到postList路由。
答案 0 :(得分:0)
如果您有模板级订阅,请执行以下操作:
Template.YOUR_TEMPLATE_HERE.onCreated(function() {
let self = this;
self.autorun(function() {
self.subscribe('posts');
})
});
然后您可以使用triggersEnter重定向,如下所示:
triggersEnter: [function(context, redirect) {
if (Posts.find({_id:context.params.id}).count() < 1)
redirect('/postslist');
}],