我想为Meteor的用户集添加一个新字段:
服务器/ fixtures.js:
Accounts.onCreateUser(function(options, user) {
user.role = 'Student'
// We still want the default hook's 'profile' behavior.
if (options.profile)
user.profile = options.profile;
return user
})
但是当我做Meteor.users.find().fetch();
时:
Object
_id: "7zLDKQE4ACJCfeEhr"
username: "alex"
__proto__: Object
我没看到这个领域。
不在模板中工作:
文件/ document_page.js:
users: function() {
var users = _.map(Meteor.presences.find().fetch(), function(user) {
return Meteor.users.findOne({_id: user.userId})
})
return users
},
文件/ user.html
<template name="user">
<li class="clearfix">
<img src="/avatar.png"/>
<div class="user-info">
<p>{{userId}}</p>
<p>{{username}}</p>
<p>{{role}}</p>
</div>
</li>
</template>
仅显示用户名。可能是什么问题?
答案 0 :(得分:2)
您需要发布自定义字段。来自文档:
默认情况下,服务器发布用户名,电子邮件和个人资料(可由用户写入)。有关用户文档中使用的字段的更多信息,请参阅Meteor.users。
最简单的方法是使用null
名称发布,该名称将自动发布文档而无需相应的Meteor.subscribe
:
Meteor.publish(null, function() {
return Meteor.users.find(this.userId, {fields: {role: 1}});
});
在这种情况下,我们将发布role
字段,该字段将与已为当前用户发布的默认字段合并。