2012-02-10 7 views
13

私は非常にシンプルなEmber.jsアプリを持っていますが、IEとChromeでは正しく動作しますが、Firefox(9.0.1と10.0)では失敗します。理由は何ですか?ここでは、コードがあります:FirefoxでこのEmber.jsアプリが失敗するのはなぜですか?

<!doctype html> 

<html> 
<head> 
    <title>Template Name</title> 
</head> 
<body> 
    <script type="text/x-handlebars" data-template-name="my-template"> 
     {{App.user.name}} 
    </script> 

    <div id="container"></div> 

    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script> 
    <script type="text/javascript" src="http://cloud.github.com/downloads/emberjs/ember.js/ember-0.9.4.js"></script> 

    <script type="text/javascript"> 
     window.App = Ember.Application.create(); 

     App.user = Ember.Object.create({ 
      name: 'John' 
     }); 

     App.view = Ember.View.create({ 
      templateName: 'my-template' 
     }); 

     App.view.appendTo('#container'); 
    </script> 
</body> 
</html> 
+0

発生しているエラーは何ですか? – Veebs

答えて

13

Firefoxでエラーが

uncaught exception: Error: <Ember.View:ember143> - Unable to find template "my-template". 

ですこれはテンプレートスクリプトは、アプリが実行される時点では評価されていないことを示しているように思われます。解決策は、オンロードを待つことです。 appendToを次のようにラップします。

$(function() { 
    App.view.appendTo('#container'); 
}); 
+7

Emberアプリケーションの準備完了コールバックにその呼び出しを入れることもできます: 'App = Ember.Application.create({ready:function(){App.view.appendTo( '#container');}});'。 –

+0

ありがとうございます。 ember.jsのdocページには準備関数はありません。また、ember-starter-kitはアプリケーションをこのように構成しません。このような情報を探していなければならない別の場所はありますか? – Naresh

+0

一般的に、準備機能と外部機能は何をすべきか?実際、すべてのEmberオブジェクトの作成/定義をEmpperアプリケーションの作成を含むjQueryのready()関数の中に入れる必要がありますか? – Naresh

1

まさに同じ問題を経験しました。 EmberがHandlebarsに依存していることが原因であることがわかりました。バージョン1.0以降、Handlebarsのソースコードを削除したようです。 Handlebarsライブラリに追加した後、エラーは消えます。

1
Ember.Application.create({ 
    ready: function() { 
     App.view.appendTo('#container'); 
    } 
}); 

トム・ワトモアは、コメントにこれに対する正解をしています。

エラーはあなたがember.js

のunminifiedバージョンを使用している場合に限り、問題はあなたができるだけ早くコードを実行されているので、テンプレートは燃えさしによって評価されていないということであるJavaScriptコンソールに表示されていますEmberアプリケーションが完全に作成された後ではなく、ブラウザがそれにヒットします。

関連する問題