[英]How to redirect after user log in with Iron Router?
我想在用户登录时重定向到“ /”主页,我设法用this.render重定向到“ /”主页,但随后它仅显示主页,无法访问其他URL。
Router.route('/', {name: 'yaksList'}) Router.route('/submit', {name: 'yaksSubmit'}); Router.route('/login', {name: 'accounts'}); Router.onBeforeAction(function() { if (Meteor.userId()) { this.render('yaksList'); } else { this.next(); } });
我尝试使用Router.go('yaksList')代替this.render,但是它不起作用。 请问什么是正确的解决方案?
还有如何处理受限制的路由的精细描述这里 。
绍贝尔先生的方法让您需要登录才能访问某些路线。 如果您尝试直接访问受限路由,然后进入该页面,它将在这两个页面之间建立您的登录页面。
您可以使用currentUser
帮助器在yaksList template
上完成yaksList template
。
{{#if currentUser}}
{{> yaksList}}
{{else}}
{{> login}}
{{/if}}
或使用router.go
。
Router.go('yaksList');
//在“提交”按钮上。
更新
但是当他们想要上/下投票时需要登录
在事件处理程序上使用验证。
Template.yaksLists.events({
'click #upVote':function(event,template){
//some other code here
//validation
if(!Meteor.userId()){
//here you redirect the user to the /login
Router.go('/login');
}else{
//do the up vote stuff
}
}
})
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.