在 Blaze 中检查相等性?

Checking equality in Blaze?

用户只能删除 post 如果他是 posted it.However 用户可以看到所有 posts.The javascript 代码是:

var postedBy = Meteor.user();
var currentPost = this._id;
Posts.insert({
name:postName,
createdAt:new Date(),
postId:currentPost,
postedBy:postedBy
});

HTML代码是:

<template name="posts">
{{#if currentUser}}
{{> addPost}}
<ul>
    {{#each post}}
        <li>{{> postItem}}</li>

    {{/each}}
</ul>
{{/if}}
</template>


<template name="postItem">
    <li>
    <h4>{{name}}</h4>
    <i>Posted by {{postedBy.username}} on {{createdAt}}</i>

     [<a href="#" class="delete-post">Delete</a>] 

    </li>
</template>
<template name='addPost'>
<input type='text' placeholder='Add post here' name='postName' id ='myinput'>
<button class="btn btn" type="button" id='btn'>Post</button>
</template>

currentUser.username 和 postedBy.username 分别显示登录用户的名称和 post 编辑特定 post 的用户的名称。

我正在尝试使用删除锚标记。

{{#if currentUser.username==postedBy.username}} 
[<a href="#" class="delete-post">Delete</a>]
{{/if}}

但是它在命令中显示错误 prompt.I 知道它是错误的但是我想不出任何其他的 way.How 我要写这个 'if' 语句来检查当前用户是否是 post 编辑此 post 的人吗? 请帮忙,因为我是 Meteor.Sorry 的新手,英语不好。

您不能在空格键中使用任意 JavaScript 表达式。添加这样的助手:

Template.postItem.helpers({
  canDelete: function (){
    return Meteor.user().username === this.postedBy.username;
  }
});

然后您可以像这样在模板中使用它:

{{#if canDelete}}
  <a href="#" class="delete-post">Delete</a>
{{/if}}

另请注意,与其将用户对象复制到每个 post,推荐的方法是将用户的 ID 存储在 postedBy