我尝试向所有新创建的用户添加属性"权限".但它不知何故不起作用.我使用此代码添加属性
Accounts.onCreateUser(function(options, user) {
user.permission = 'default';
if (options.profile)
user.profile = options.profile;
return user;
});
Run Code Online (Sandbox Code Playgroud)
但是当我在客户端检索用户对象时,我看不到该属性
u = Meteor.users.findOne(Meteor.userId)
u.permission
>undefined
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
你正确地创建它.问题是客户端没有看到这个值.取自文档:
默认情况下,服务器会发布用户名,电子邮件和个人资料
因此,您需要发布/订阅其他字段.
服务器:
Meteor.publish('userData', function() {
if(!this.userId) return null;
return Meteor.users.find(this.userId, {fields: {
permission: 1,
}});
});
Run Code Online (Sandbox Code Playgroud)
客户:
Deps.autorun(function(){
Meteor.subscribe('userData');
});
Run Code Online (Sandbox Code Playgroud)