【问题标题】:Handling nested dictionaries in Meteor and mongodb在 Meteor 和 mongodb 中处理嵌套字典
【发布时间】:2015-01-28 01:21:50
【问题描述】:

我有以下结构:

{
  game_number: 101,
  type: 1,
  players: ["x1","x2","x3"],
  scores: [
            { "x1" : 0 },
            { "x2" : 1 }
          ]
}

有一个 游戏,其中有 3 个 玩家 在玩。玩家 x1 和 x2 已经完成并获得了他们的最终分数。播放器 x3 还没有结束。我的想法是检查这个结构中的 scores,看看谁已经完成或没有完成,这样我就可以在 Meteor 中拥有类似的东西:

{{#if playerHasFinished player}}
  <div class="result">
    ...
  </div>
{{else}}
  <div class="waiting">
    ...
  </div>
{{/if}}

我不确定我的数据结构是否正确,所以也许 there 是我的“功能性”错误,但无论如何应该可以做到,对吧?我将如何访问这些数据?

【问题讨论】:

  • 这个游戏是否在您的数据库中,而不是一个 javascript 对象?大概您知道您指的是哪个游戏,或者至少知道玩家叫什么(x1、x2 等...)?
  • 不确定我是否明白这个问题。在告诉我们问题出在哪里之前,您先谈论错误。 playerHasFinished 的代码是什么?
  • 对不起各位,我写这个问题有点匆忙,我意识到这确实有点混乱。无论如何,感谢您的时间和帮助!

标签: javascript mongodb dictionary meteor handlebars.js


【解决方案1】:

如果您要求实现playerHasFinished,这里有一个示例:

Template.myTemplate.helpers({
  playerHasFinished: function(player) {
    // get the current game - modify as appropriate
    var game = Games.findOne(Session.get('curentGame'));

    // ['x1', 'x2']
    var finishedPlayers = _.keys(scores);

    // this assumes player is a string like 'x3'
    return _.contains(finishedPlayers, player);
  }
});

【讨论】:

  • 抱歉问题中的混淆。是的,最后我是这么问的,这对我帮助很大。谢谢!
猜你喜欢
  • 2010-11-19
  • 1970-01-01
  • 2021-07-24
  • 2020-12-03
  • 2020-12-15
  • 1970-01-01
  • 1970-01-01
  • 2019-05-01
  • 2020-10-21
相关资源
最近更新 更多