在 ember-cli 中引用应用程序

Referencing App in ember-cli

我的 运行 我的 ember-cli 应用处于生产模式时遇到问题。当我引用 App.deferReadiness() 时,它就像 App 未定义一样。

app/app.咖啡

`import Ember from 'ember'`
`import Resolver from 'ember/resolver'`
`import loadInitializers from 'ember/load-initializers'`
`import config from './config/environment'`

App = Ember.Application.extend
  modulePrefix: config.modulePrefix
  podModulePrefix: config.podModulePrefix
  Resolver: Resolver
  ready: ->
    Ember.debug "Total setup time: #{(new Date).valueOf() - startTime.valueOf()}ms"

loadInitializers(App, config.modulePrefix)

`export default App`

app/initializers/facebook.咖啡

`import App from 'my_app/app'`
initialize = (container, application) ->
  # Results in: t.default.deferReadiness is not a function
  App.deferReadiness()
  # omitted code

这在开发模式下工作正常,但在生产模式下有些问题。有什么想法吗?

我无法确定为什么开发模式和生产模式之间存在差异,但我找到了解决该问题的方法。我提到的所有地方 App 都在初始值设定项中。初始化器接收参数 containerapplication。通过使用这些参数,我能够停止使用 App。在控制器中还有一个对 App.__container__.lookup 的引用(我知道这很讨厌)。使用 this.container.lookup 很容易解决这个问题。我相信这些更改可以解决我的问题。