我正在将我的项目从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);
*配置在我的问题中并不那么重要。
因此,当我运行 ember 服务器时,我看到该应用程序.js被调用了两次。我猜这是第一次自动调用,第二次调用是由上面的create()函数进行的。所以运行服务器后,我收到一个错误:
"未捕获的错误:断言失败:您不能在 Ember.Application 中多次使用相同的根元素(正文)"
我知道该错误意味着我正在同一个 DOM-Object 中创建我的应用程序的两个实例,可以通过创建两个具有不同 ID 的子容器 () 来解决。
但是,在我实际调用 create() 之前,如何避免创建自动完成的第一个实例?如果没有上面显示的行,该应用程序根本不显示,但是有了它们,我得到了提到的错误。我已经检查了整个应用程序实现,在上面的create()函数之前,没有什么可以调用初始实例创建的内容。
我在运行Grunt的EmberAppKit中没有这个错误
在 Ember CLI 配置存在于 /config/environment.js
中,它将自动传递给您的应用程序。您不需要手动执行此操作。
设置窗口。app=this in app.js 解决了这个问题。
如果您查看 my-app.js 在资产中,您将看到在脚本末尾创建了一个实例。 因此,只需将其分配给窗口即可。应用程序