因此,我现在正在开发基于几个不同软件包的流星应用程序。

我的主应用程序中有一个对象,用作包装的API。该对象如下所示(在主应用程序的lib / helpers / api.coffee中):

@Mainapp =
  getCurrentUser: ->
  Meteor.user()

  getCurrentUserId: ->
  Meteor.userId()

  setTitle: (title) ->
  setTitle(title)

  setAlert: (message, type='danger') ->
  Alerts.add(message, type)


如果我在Mainapp或控制台中访问此对象,则一切正常。
但是,如果我尝试在应用程序包中访问此对象,则会收到“ Mainapp not defined”(未定义Mainapp)错误。

有没有一种方法可以在主应用程序和程序包之间共享此对象。我知道我可以使用session.set和session.get做一些事情,但是我认为最好有一个中心对象,它充当我的包的一种API。

有Meteor.userId()和Meteor.user()可以对Meteor核心系统执行类似的操作(这些功能也可在软件包中使用)。他们如何实现在Meteor主应用程序和软件包中提供此功能?

提前致谢!

最佳答案

使Mainapp可以全局访问。因此,您的示例生成的javascript应该是:

var constructor = function () {
}
constructor.prototype.getCurrentUser= function () {.....
.... DEFINE YOUR METHODS ....

Mainapp = new constructor();


流星用变数来做魔术,而变数前面没有变数,并使它们可以全局访问。

09-25 17:02
查看更多