在Method If Statement中使用Meteor.users.findOne

时间:2015-06-06 03:27:51

标签: meteor

我下面有一个把手帮手,向我展示了所选择的玩家威胁。它有效。

Handlebars.registerHelper('sthreat', function() {
    var sthreat = Meteor.users.findOne({_id: Session.get('selectedPlayer')}, {threat: 1});
    return sthreat;
});

然而,下面的按钮(在客户端上)和方法(在服务器上)假设在继续之前检查玩家是否有5个或更多威胁,尽管它们不起作用。

'click input.increment': function(){
  var selectedThreat = Meteor.users.findOne({_id: Session.get('selectedPlayer')}, {threat: 1});
  Meteor.call('incclick',selectedThreat);
},

incclick: function (selectedThreat) {
  if(selectedThreat <= 4) {
  } else {
  Meteor.users.update({_id: Session.get('selectedPlayer')}, {$inc: {'threat': -5}});
  Meteor.users.update({_id: this.userId}, {$inc: {'threat': 5}});
  }
},

我想如果我能在帮助器中显示值,我应该能够在方程式中使用它。这里有什么我想念的吗?

1 个答案:

答案 0 :(得分:1)

Meteor.users.findOne将返回一份文件。您传递{threat: 1}作为选项,但它们将被忽略,因为它们都不是有效的。 sortfieldlimit等选项可以使用。

我认为您希望获得该文档的属性。 Meteor.users.findOne的结果将是这样的

{
    _id : ..
    threat: 3,
    ...
}

因此,您只需将属性传递给方法而不是整个文档:

Meteor.call('incclick',selectedThreat.threat);