我有这个简单的检查用户是否已登录,如果没有 - 重定向到注册页面
Router.map(function () {
this.route('home', {
path: '/',
onBeforeAction: function (pause) {
if (!Meteor.user()) {
this.render('register');
pause();
}
}
});
this.route('register', {path: '/register'});
});
获得
Exception from Tracker recompute function: Error: Couldn't find a template named "register" or "register". Are you sure you defined it?
当我直接进入/register
时,它确实有效。
任何想法为什么?
答案 0 :(得分:3)
this.render
将模板名称作为参数,不是 路线名称
this.render('templateName'):渲染名为'templateName'的模板 进入主要收益率{{>产量}}
将this.render("register")
替换为Router.go('register')
检查用户是否处于登录状态也是有益的:
if (!(Meteor.loggingIn() || Meteor.user())) {
console.log("User is not logged in");
Router.go("register");
pause()
}
答案 1 :(得分:0)
要创建我使用em
工具的模板,当我em g:route register
时,它命名模板Register
- 使用大写R
。
在渲染中重命名:this.render('Register');
就可以了。