我想添加一个类似按钮。如果用户点击特定帖子的按钮,那个特定帖子的喜欢的数量应该增加1.但是如果他再次点击同一帖子的类似按钮的数量喜欢应该减少1.
在我的代码中,用户可以为每个帖子提供超过1个。如何更改?
Javascript代码是:
Template.postItem.events({
'click button':function(event){
event.preventDefault();
var documentId = this._id;
this.likes=this.likes+1;
console.log(this);
Posts.update({ _id: documentId },{$set:{likes:this.likes}});
}
});
HTML code:
<template name="postItem">
<li>
{{_id}}
<h4>{{name}}</h4>
<i>Posted by {{postedBy}} on {{createdAt}}</i>
<br>
{{likes}}<button class="btn btn-default glyphicon glyphicon-hand-up" >Like</button>
这里{{button}}是postItem的帮助器,它返回每个帖子上like的数量值。
答案 0 :(得分:0)
你可以在帖子文档中有一个变量&#34;喜欢&#34;作为包含喜欢帖子的用户ID的数组。
Post = {
likes: [String]
}
您可以检查特定用户是否已经喜欢该帖子。
var Post = Posts.find({_id: documentId, likes: Meteor.userId()});
mongo的文档:https://docs.mongodb.com/manual/tutorial/query-documents/#match-an-array-element