0

我正在将我的项目从 Ember AppKit 转移到 Ember-Cli。我有一个 myapp/app/app.js,应用程序在其中初始化,在 myapp/app/index.html 中我有以下几行:

        var config = require('myapp/config/environment')['default'];
        window.App = require('myapp/app')["default"].create(config.APP);

*config 在我的问题中并不重要。

所以当我运行 ember 服务器时,我看到 app.js 被调用了两次。我猜是第一次自动调用,第二次调用是由上面的 create() 函数进行的。所以在运行服务器后我得到一个错误:

“未捕获的错误:断言失败:您不能在 Ember.Application 中多次使用相同的根元素(正文)”

我知道该错误意味着我在同一个 DOM-Object 中创建了我的应用程序的两个实例,并且可以通过创建两个具有不同 ID 的子容器 () 来解决它。

但是如何避免在我实际调用 create() 之前创建第一个实例,这是自动完成的?如果没有上面显示的行,则根本不会显示应用程序,但是有了它们,我会收到提到的错误。我已经检查了整个应用程序的实现,在上面的 create() 函数之前,没有什么可以称为初始实例创建。

我在运行 Grunt 的 EmberAppKit 中没有这个错误

4

2 回答 2

1

在 Ember CLI 配置中/config/environment.js,它会自动传递给您的应用程序。您不需要手动执行此操作。

于 2014-11-18T16:53:10.367 回答
0

在 app.js 中设置 window.App=this 已经解决了这个问题。

如果您查看资产中的 my-app.js,您会看到在脚本末尾创建了一个实例。所以它只需要分配给 window.App

于 2014-11-19T13:48:05.203 回答