【发布时间】:2014-06-05 02:14:30
【问题描述】:
在我的 Meteor 应用程序中,我使用默认的 accounts 包,它为我提供了默认的登录和注册功能。现在我想给用户添加一个额外的字段,比如nickname,并且让登录的用户可以编辑这些信息。
为了编辑个人资料,我想我应该这样做:
Template.profileEdit.events({
'submit form': function(e) {
e.preventDefault();
if(!Meteor.user())
throw new Meteor.Error(401, "You need to login first");
var currentUserId = this._id;
var user = {
"profile.nickname": $(e.target).find('[name=nickname]').val()
};
Meteor.users.update(currentUserId, {
$set: user
}, function(error){
if(error){
alert(error.reason);
} else {
Router.go('myProfile', {_id: currentUserId});
}
});
}
});
但是如果我在 Mongo 中查看,我不会存储信息。同样在显示配置文件时,{{profile.nickname}} 返回空。这里有什么问题?
编辑:添加collections\users.js 以显示权限:
Meteor.users.allow({
update: function (userId, doc) {
if (userId && doc._id === userId) {
return true;
}
}
});
Meteor.users.deny({
update: function(userId, user, fieldNames) {
return (_.without(fieldNames, 'profile.nickname').length > 0);
}
});
【问题讨论】:
标签: meteor