Почему приложение Ember.js не работает в Firefox?
У меня очень простое приложение Ember.js, которое работает корректно в IE и Chrome, но не работает в Firefox (9.0.1 и 10.0). Почему? Здесь код:
<!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>
Ответы
Ответ 1
Ошибка в firefox
uncaught exception: Error: <Ember.View:ember143> - Unable to find template "my-template".
Это, по-видимому, указывает, что шаблон script не был оценен в том месте, где выполняется приложение. Решение - дождаться загрузки. Оберните свой appendTo
следующим образом:
$(function() {
App.view.appendTo('#container');
});
Ответ 2
Я только что испытал ту же самую проблему. Я узнал, что это было вызвано тем, что Эмбер был зависим от Handlebars. Похоже, что после версии 1.0 они удалили включение исходного кода Handlebars. После добавления в библиотеку Handlebars ошибка исчезнет.
Ответ 3
Ember.Application.create({
ready: function() {
App.view.appendTo('#container');
}
});
Tom Whatmore имеет правильный ответ на это в комментариях.
Ошибка отображается в консоли javascript только в том случае, если вы используете неопределенную версию ember.js
Проблема заключается в том, что шаблон не был оценен ember, потому что вы выполняете код, как только браузер ударяет его, а не после того, как приложение ember полностью создано.