this.userId导致未定义的错误

时间:2014-12-10 09:32:42

标签: meteor

我有一个postItem模板,当它是登录用户自己的帖子时会显示编辑和删除按钮:

  <div class="page-actions">
    {{#if ownPost}}
      <a class="btn btn-default" href="{{pathFor 'postEdit'}}">edit</a>
      <a class="btn btn-danger delete" href="#">delete</a>
    {{/if}}
  </div>

ownPost助手看起来像这样:

Template.postItem.helpers({
  ownPost: function() {
    return this.userId === Meteor.userId();
  }
});

this.userId会返回undefined。我想它与this上下文有关,但我不完全确定这里出了什么问题?

1 个答案:

答案 0 :(得分:0)

你需要使用console.log(this)检查它的上下文,然后检查你是否a)发布你想要的数据(你是使用带有指定字段的pub / sub还是仍然使用原型进行原型设计) autopublish / insecure等?)。

最后,我会检查您是否正确地将数据保存到集合中的文档,但显然只有用户集合本身拥有用户ID。

在这样的模板助手中,this关键字将引用填充模板的对象。