因此,我现在正在开发基于几个不同软件包的流星应用程序。
我的主应用程序中有一个对象,用作包装的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();
流星用变数来做魔术,而变数前面没有变数,并使它们可以全局访问。