我想通过以下订阅数据方式获得差异,
使用waitOn
waitOn:function(){
Meteor.subscribe('//some published function)
}
使用onBeforeAction
Router.onBeforeAction : function(){
Meteor.subscribe('//some published function)
}
使用订阅
subscriptions: function() {
this.subscribe('items');
}
答案 0 :(得分:0)
如果您只想为授权用户发布数据,则可以在onBeforeAction中检查(如果用户已通过身份验证)路由。类似的东西:
Router.map(function(){
this.route('home', {
path : '/',
template : 'home'
});
this.route('register', {
path : '/register',
template : 'register'
});
this.route('login', {
path : '/login',
template : 'login'
});
this.route('requestlisting', {
path : '/requestlisting',
template : 'requestlisting',
waitOn : function(){
return Meteor.subscribe('RequestsPublication');
}
});
...
});
var requireLogin = function () {
if(!Meteor.user()){
if(Meteor.loggingIn()){
this.render(this.loadingTemplate);
}else{
Router.go('login');
}
} else {
this.next();
}
}
Router.onBeforeAction(requireLogin, {only: ['requestlisting',...]});
在此示例中,在onBeforeAction中,仅当用户登录时才会发生“请求列表”路由,之后订阅任何数据都是有意义的。