Meteor:如果用户没有创建页面则重定向
Meteor : redirect if user didn't create page
在 Meteor 中我有一个产品编辑页面。我只希望创建产品的用户看到该页面。否则你会被重定向。
有没有办法只用 iron router 做这个重定向?
如果没有,我会采取任何解决方案。
router.js
var OnBeforeActions;
OnBeforeActions = {
ownerRequired: function(pause){
if(!Meteor.userId()){
Router.go('home');
}else if(Meteor.userId()._id != ....SOMETHING?....){
Router.go('home');
}else{
this.next();
}
}
};
Router.onBeforeAction(OnBeforeActions.ownerRequired, {
only: ['editProduct']
});
Router.route('/editProduct/:_id',{
template: "editProduct",
name: "editProduct",
data: function(){
return Products.findOne({_id: this.params._id});
}
});
所以如果你想知道如何解决这个没有铁路由器。你可以做这样的事情。 (请注意,如果用户已登录,我已经使用 onBeforeAction 进行了检查。)
Template.editProduct.onCreated(function(){
if(this.data.user === Meteor.userId()){
}else{
Router.go('home');
}
});
在 Meteor 中我有一个产品编辑页面。我只希望创建产品的用户看到该页面。否则你会被重定向。
有没有办法只用 iron router 做这个重定向? 如果没有,我会采取任何解决方案。
router.js
var OnBeforeActions;
OnBeforeActions = {
ownerRequired: function(pause){
if(!Meteor.userId()){
Router.go('home');
}else if(Meteor.userId()._id != ....SOMETHING?....){
Router.go('home');
}else{
this.next();
}
}
};
Router.onBeforeAction(OnBeforeActions.ownerRequired, {
only: ['editProduct']
});
Router.route('/editProduct/:_id',{
template: "editProduct",
name: "editProduct",
data: function(){
return Products.findOne({_id: this.params._id});
}
});
所以如果你想知道如何解决这个没有铁路由器。你可以做这样的事情。 (请注意,如果用户已登录,我已经使用 onBeforeAction 进行了检查。)
Template.editProduct.onCreated(function(){
if(this.data.user === Meteor.userId()){
}else{
Router.go('home');
}
});