如何从Meteorjs中的多个文件访问集合?

时间:2013-08-21 10:06:51

标签: javascript meteor

在我的主js文件中,我定义了一个“new Meteor.Collection(”Decks“)”,如果没有数据,我会填充一些数据。

现在我在客户端文件夹中有一个视图文件夹,其中包含模板事件的javascript。每个模板都有自己的js文件。那些事件需要查询和更新Decks集合,但我不知道如何做到这一点。我尝试在事件代码中编写一个“new Meteor.Collection(”Decks“)”,但我收到一个错误,表明该集合已经存在。

我可以想象使用requirejs可能会将全局变量传递给事件,但我觉得在Meteor中必须有一种本地方式来执行它。

如何在不同的文件中访问同一个集合?

例如,我的应用程序称为“构建器”,因此主要的js称为“builder.js”并包含:

var Decks = new Meteor.Collection("Decks");

然后我在客户端文件夹中有另一个名为“do_other_stuff.js”的javascript文件,它想要查询Decks集合,所以类似于:

var first_deck = Decks.findOne({name: "first"});

但显然这不起作用,因为Decks不是一个全局变量。

2 个答案:

答案 0 :(得分:2)

简单地说,让Decks成为一个全局变量!删除var关键字:

Decks = new Meteor.Collection("Decks");

答案 1 :(得分:0)

文件中的

Meteor.subscribe("Decks")应该可以解决问题。