Подтвердить что ты не робот

Почему приложение 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>
4b9b3361

Ответ 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 полностью создано.