gpt4 book ai didi

javascript - 检查 Blaze 中的相等性?

转载 作者:行者123 更新时间:2023-11-28 18:30:40 25 4
gpt4 key购买 nike

用户只能删除帖子,如果他是发布帖子的人。但是用户可以看到所有帖子。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分别显示登录用户和发布特定帖子的用户的名称。

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

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

但它在命令提示符中显示错误。我知道这是错误的,但我想不出任何其他方法。我如何编写此“if”语句来检查当前用户是否是发布此帖子的用户?请帮忙,因为我是 Meteor 的新手。抱歉英语不好。

最佳答案

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

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

然后您可以在模板中使用它,如下所示:

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

另请注意,建议的方法是将用户的 ID 存储在 postedBy 中,而不是将用户对象复制到每个帖子中。

关于javascript - 检查 Blaze 中的相等性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38079159/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com