Ich möchte einen Like-Button hinzufügen.Wenn ein Nutzer auf einen Button eines bestimmten Posts klickt, sollte die Anzahl der Likes dieses bestimmten Posts um 1. erhöht werden. Wenn er jedoch erneut auf den Like-Button desselben Posts klickt, wird die Anzahl der Likes angezeigt sollte um 1 sinken.Wie kann sichergestellt werden, dass ein Benutzer für jeden Beitrag nur einmal auf "Gefällt mir" klicken kann?
In meinem Code kann der Benutzer mehr als 1 wie zu jedem Beitrag geben.Wie soll ich das ändern?
Javascript-Code ist:
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>
Hier {{Taste}} ist ein Helfer der PostItem, die auf jeden Post den Wert der Anzahl gleicher zurückgibt.
Sie müssen für jeden Benutzer einen Flag zum Speichern für jeden Post sagen zu können, wenn der Benutzer bereits abgestimmt hat. – Thilo
@Thilo Wie kann ich das tun? –
Vielleicht 'Likes.insert ({_id: documentId +" _ "+ userId})'. Dann können Sie prüfen, ob ein solches Dokument existiert oder nicht. – Thilo