В моем приложении метеора с маршрутизатором Flow я использую подписку метеора для получения пользовательских данных, но данные в помощниках не обновляются в соответствии с обновлениями пользовательской коллекции.
В моем коде публикаций
Meteor.publish('fetchUserData', function(usrnm) {
return Meteor.users.find({'username':usrnm}, {
fields: {
profile: true,
services: true,
emails: true,
votedPatents: true,
userType: true,
followingUsers: true,
followedByUsers: true
}
});
});
В моем файле router.js
Subs = new SubsManager();
FlowRouter.route('/:username', {
subscriptions: function(params) {
this.register('fetchUserData', Meteor.subscribe('fetchUserData', params.username));
},
action: function(params) {
BlazeLayout.render('main', {center: 'profile'});
})
}
});
В моем клиентском коде
Template.profile.onCreated(function() {
this.autorun(function() {
var handle = Subs.subscribe('fetchUserData', username);
})
})
Template.profile.helpers({
connections: function(){
var u = Meteor.users.findOne({'username':username});
return u;
}
})
Также следует отметить, что вспомогательная функция возвращает undefined для пользователей, отличных от Meteor.user(), и я также пробовал Как получить доступ к подпискам FlowRouter в помощниках шаблонов Meteor? , но результат тот же