我正在尝试为Meteor中的currentUser
对象添加不在配置文件中的额外信息。我认为这是可能的,技术应该在meteor/alanning:roles
。
e.g。如果我在organizations
中有一个users
对象,例如
{
_id: ...
profile: { ... }
roles: [ ... ]
organizations: [ ... ]
}
我想在我做的时候看到它
{{ currentUser }}
答案 0 :(得分:1)
要将orgId
推送到用户对象中的organizations
数组,例如:
Meteor.users.update(_id,{$push: {organizations: orgId}});
正如@Blaze Sahlzen所说,你需要发布这个字段:
Meteor.publish('orgUsers',function(orgId){
return Meteor.users.find({organization: orgId},{fields: {organization: 1, profile: 1}});
});
答案 1 :(得分:0)
基本上currentUser
是meteor中的全局帮助器,它调用返回Meteor.user()
来自流星回购
Package.blaze.Blaze.Template.registerHelper('currentUser', function () {
return Meteor.user();
});
Meteor.user()
函数返回以下数据
user() {
var userId = this.userId();
return userId ? this.users.findOne(userId) : null;
}
回到你的问题,如果你想向currentUser
添加额外的字段,只需将数据发布到客户端。
如果您希望默认将该字段发布给用户
Meteor.publish(null, function(argument){
if(this.userId){
return Members.findOne({userIds: this.userId}, { fields: { organizations: 1,... } });
}
this.ready()
});