在我的主js文件中,我定义了一个"new Meteor.Collection("Decks")",如果没有数据,我会填充一些数据。
现在,我在客户端文件夹中有一个视图文件夹,其中包含模板事件的javascript。每个模板都有自己的js文件。这些事件需要查询和更新Decks集合,但我不知道该怎么做。我试着在事件代码中写一个"new Meteor.Collection("Decks")",但我得到一个错误,该集合已经存在。
我可以想象使用requirejs将一个全局变量传递给事件,但我觉得在Meteor中一定有一种本地的方法。
如何访问不同文件中的同一集合?
举个例子,我的应用程序名为"builder",所以主js名为"builder.js",包含:
var Decks = new Meteor.Collection("Decks");
然后,我在客户端文件夹中有另一个名为"do_other_stuff.js"的javascript文件,它想查询Decks集合,所以类似于:
var first_deck = Decks.findOne({name: "first"});
但显然,这是行不通的,因为Decks不是一个全局变量。
简单地,将Decks
设为全局变量!删除var
关键字:
Decks = new Meteor.Collection("Decks");
Meteor.subscribe("Decks")
应该可以做到这一点。