在我的Meteor应用程序中,带有方法调用的这个投票函数工作正常,直到我包含一个将lodash导出为var _ = runInContext();
的compability脚本现在我收到_.contains
不是函数的错误。 / p>
是否有另一种方法可以运行此功能并在没有_.contains
的情况下调用?
点击按钮:
"click [data-action='addLikes']": function (event) {
event.preventDefault();
var song = Songs.findOne({_id: this._id});
upvote(song);
}
服务器方法:
upvote = function(currentSong){
var user = Meteor.user();
if(!user){
return false;
}
if (currentSong) {
if (_.contains(currentSong.voters, Meteor.userId())) {
return false;
}
Songs.update(currentSong._id, {$addToSet: {voters: Meteor.userId()}, $inc: {likes: 1}});
}
};
答案 0 :(得分:0)
如果currentSong.voters
只是一个数组,您可以使用两种解决方案:
<强> ES6 强>:
currentSong.voters.includes(Meteor.userId())
<强> ES5 强>:
currentSong.voters.indexOf(Meteor.userId()) > -1
或简写
~currentSong.voters.indexOf(Meteor.userId())