私は、ユーザーが 1 回だけ上に投票し、1 回だけ下に投票できる、上または下の投票ボタンを実現しようとしています。すでに何かに賛成票を投じている場合は、賛成票ボタンをもう一度クリックしてそれを削除できるはずですが、これに何が欠けているのかわかりません。私のコードは次のようになります。私は偽の真のステートメントで何かを実装する必要があると思いますが、いくつか試してみましたが、何も機能しませんでした。助けていただければ幸いです。
Template.postArgument.events({
'click':function() {
Session.set('selected_argument', this._id);
},
'click .yes':function() {
if(Meteor.user()) {
var postId = Arguments.findOne({_id:this._id})
console.log(postId);
if($.inArray(Meteor.userId(), postId.votedUp) !==-1) {
return "Voted";
} else {
var argumentId = Session.get('selected_argument');
Arguments.update(argumentId, {$inc: {'score': 1 }});
Arguments.update(argumentId, {$addToSet: {votedUp: Meteor.userId()}});
}
}
}});