另一种不用lodash调用方法的方法?

时间:2016-10-13 17:37:51

标签: javascript mongodb meteor lodash

在我的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}});
  }
};

1 个答案:

答案 0 :(得分:0)

如果currentSong.voters只是一个数组,您可以使用两种解决方案:

<强> ES6

currentSong.voters.includes(Meteor.userId())

<强> ES5

currentSong.voters.indexOf(Meteor.userId()) > -1

或简写

~currentSong.voters.indexOf(Meteor.userId())