我试图显示弹出窗口或模板页面,如果用户在注册后第一次登录,基本上允许他们在转到仪表板主页之前在该页面上配置一些东西,它只是方便所需,这是我得到的(望远镜代码)
Router.onBeforeAction(hasCompletedChannels);
hasCompletedChannels: function() {
if(!this.ready()) return;
var user = Meteor.user();
if (user && ! userCompletedChannels(user)){
this.render('connectChannels');
} else {
this.next();
}
}
我不喜欢这样,因为每次都会运行,我希望它只运行一次,甚至不执行检查功能。是否可以检测到首次登录? (注册后)
答案 0 :(得分:0)
我认为你可以将它与特定路线联系起来。现在你将它绑定到Router对象(每个渲染力量在你指出时进行检查)。因此,如果您定义登录功能以在登录后将某人发送到特定路线,您可以在该路线上进行验证。
函数Accounts.onLogin
为您提供了一种在登录后执行操作的方法。
像
这样的东西Router.route('profile', {
path: '/profile',
onBeforeAction: function() {
// Check some stoof
// If first time logged in
// render first time template
// else
// this.next() will render the profile page
},
waitOn: function() {
return [
// some subs
];
},
data: function() {
// some data
}
});
我假设它将被路由到一个名为profile的页面(似乎有意义)。您可以通过在用户对象中使用的某个属性以及要填写的字段来检查首次登录,并强制渲染不同的模板或子模板。查看Iron Router指南,了解有关配置方法的更多信息。
祝你好运