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);

*構成は私の質問ではそれほど重要ではありません。

そのため、ember サーバーを実行すると、app.js が 2 回呼び出されていることがわかります。初めて、自動的に、おそらく、2 回目の呼び出しは上記の create() 関数によって行われます。したがって、サーバーを実行した後、エラーが発生します。

「キャッチされないエラー: アサーションに失敗しました: Ember.Application で同じルート要素 (本体) を複数回使用することはできません」

このエラーは、同じ DOM-Object でアプリの 2 つのインスタンスを作成していることを意味しており、異なる ID を持つ 2 つのサブコンテナー () を作成することで解決できることを知っています。

しかし、実際に 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 に答える