2014-09-29 2 views

ответ

2

Вы ищете Пост инициализаторы.

Ember.Application.initializer({ 

    name: 'my-initializer', 
    after: 'some-other-initializer', 

    initialize: function(container, application) { 
     application.deferApplicationReadiness(); 
     application.register(...); 

     very_long_initialization_task_returning_promise().then(function() { 
      application.advanceApplicationReadiness(); 
     }); 
    } 
}); 

Вы можете использовать инициализаторы для предварительной загрузки что-то в магазине, организовать инъекции зависимостей и т.д. Свойство after предоставляет возможность установить порядок для инициализаторов. deferApplicationReadiness и advanceApplicationReadiness позволяют сообщать Ember, когда приложение готово к работе.

Подробнее см. http://emberjs.com/api/classes/Ember.Application.html#method_initializer.

Если вы используете уголек-CLI, сделать хэш передается Ember.Application.initializer выше экспорта по умолчанию из файла с именем initializers/my-initializer.js:

export default { 
    name: 'my-initializer', 
    ... 
} 
0

Вы можете сделать это следующим образом ... Предполагая, что синхронизация не имеет решающего значения для загрузки всего и готовности DOM и т. Д. Нажмите «Выполнить фрагмент кода», чтобы перейти к изменению заголовка «JavaScript» через 1 секунду.

var App = Ember.Application.create(); 
 

 
App.reopen({ 
 
    ready: function() { 
 
    setTimeout(function() { 
 
     Ember.$('#thing').text('FavaBean'); 
 
    }, 1000); 
 
    } 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<script src="http://builds.emberjs.com/handlebars-1.0.0.js"></script> 
 
<script src="http://builds.emberjs.com/ember-latest.js"></script> 
 

 
<h1 id="thing">JavaScript</h1>

Смежные вопросы