2012-02-10 3 views
13

IE 및 Chrome에서 올바르게 작동하지만 Firefox (9.0.1 및 10.0)에서 실패하는 매우 간단한 Ember.js 앱이 있습니다. 이유가 뭐야? 파이어 폭스에서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

오류이 템플릿 스크립트가 응용 프로그램이 실행되는 시점에서 평가되지 않았 음을 나타내는 것 같다

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

Tom Whatmore는 주석에서 이에 대한 정답을 가지고 있습니다.

오류는 ember.js

당신이 코드는 가능한 한 빨리 실행이기 때문에 문제는 템플릿 타다에 의해 평가되지 않았 음이다의 unminified 버전을 사용하는 경우에만 자바 스크립트 콘솔에 표시됩니다 Ember 응용 프로그램이 완전히 작성된 후에가 아니라 브라우저가이를 실행합니다.

관련 문제