Meteor - registerHelper,无法访问用户值

时间:2016-03-09 11:00:46

标签: meteor helper

我正在使用meteor构建一个类似于reddit的网站。我将account-ui包用于用户帐户,但我无法获取用户值。我能够创建一个帐户并登录,但是当我发表评论时,它表明我是一个匿名用户。这是代码 -

Template.registerHelper('getUser', function(user_id) {
    var user = Meteor.users.findOne({_id: user_id});
    if (user) {
        return user.username;
    }
    else {
        return "anon";
    }
});

发表评论 -

Template.comment_form.events({
    "submit .js-save-comment-form":function(event){
        if (Meteor.user()) {
            // here is an example of how to get the comment out of the form:
            var comment = event.target.comment.value;
            console.log("The comment is: "+comment);

            Comments.insert({
                website: Router.current().params._id, 
                comment: comment, 
                createdOn: new Date(),
                user: Meteor.user()._id
            });
            event.target.comment.value = "";
        }
        else {
            alert('You need to be logged in to submit comments!');
        }

        return false; // stop the form submit from reloading the page

    }
});

我是以用户测试身份登录的,但是当我发布评论时,它显示它是由anon发布的,这意味着服务器没有返回用户值

1 个答案:

答案 0 :(得分:0)

看看这是否会显示用户名。这不是生产解决方案,但如果它有效,它应该让你知道发生了什么。

Meteor.publish(null, function () {
  if (!this.userId) return null;
  return Meteor.users.find({},{fields: {'username': 1, '_id': 1}});
});