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

How do I access a collection from more than one file in Meteorjs?

本文关键字:文件 访问 集合 Meteorjs      更新时间:2023-09-26

在我的主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")应该可以做到这一点。