Cloud9& Meteor.js未定义全局变量

时间:2015-05-30 12:46:50

标签: mongodb meteor undefined cloud9-ide

我正在尝试在Cloud9上创建排行榜。但我得到错误:编辑器中没有定义PlayersList ...该应用程序正在运行,但随后它在编辑器中的代码强调所有“不定义PlayersList”

代码:

PlayersList = new Mongo.Collection('players');

if(Meteor.isClient){

   Template.leaderboard.helpers({

      'player': function(){
        return PlayersList.find({}, {sort: {score: -1, name: 1}});
    },

    'selectedClass': function(){
      var playerId = this._id;
      var selectedPlayer = Session.get('selectedPlayer');
      if(selectedPlayer === playerId){
      return 'selected';
      }
    },

    'showSelectedPlayer': function(){
      var selectedPlayer = Session.get('selectedPlayer');
      return PlayersList.findOne(selectedPlayer);
    }

   });

2 个答案:

答案 0 :(得分:1)

Cloud9的编辑器使用UDF,并使用foo = 22使其认为某处有var foo;缺少的语句。您可以选择忽略它,也可以按如下方式修复它:

/*eslint-env meteor */添加到顶部,这样它就不会发出有关Meteor全局变量的警告,也许您还需要添加/* globals Player */,以防错误仍然存​​在。 (我没有对此进行测试,请告诉我它是如何进行的,以便我可以改进答案)

答案 1 :(得分:0)

我通过一些解决方法解决了这个问题。我添加了coffeescript,然后当你用coffeescript定义一个集合时,我就像你应该使用全局@符号。那就是为我解决它。它工作正常。当我在新的浏览器窗口中打开应用程序时,可以在控制台中找到帖子。

示例:

@Posts = new Mongo.Collection('posts')