Можно ли загрузить какой-либо компонент перед компонентом "Приложение"? Angular2

Мое приложение начинается с App составная часть:

@NgModule({
  bootstrap: [ App ]
...

Это мой index.hmtl

...
<app>
 Loading...
</app>
...

Но я хочу сделать заставку вместо просто сообщения "Загрузка... ":

...
<app>
  <splash></splash>
</app>
...

Также я добавил заставку к объявлениям основного модуля:

...
declarations: [
  App,
  SplashScreen
],
...

Но... процесс начальной загрузки начинается с App компонент и Splash не загружен Как я могу загрузить компонент Splash перед компонентом приложения и использовать его?

3 ответа

Решение

Вы не можете загрузить компонент без Angular, поэтому вам, вероятно, нужно создать "статическую" заставку / анимацию загрузки с использованием чистого HTML (и JS, если вам это нужно).

Вы можете сделать AppComponent как можно более легким и добавить <my-actual-app-component *ngIf="dataIsLoaded">my-actual-app-component> если вы думаете, что рендеринг вашего AppComponent занимает некоторое время. Обычно это просто инициализация самого Angular2.

Компонент приложения будет тем, который вы загружаете из Angular 2. Если вы хотите иметь заставку, вам нужно будет сделать это в своем index.html, Оттуда вы можете добавить js и css, если вам нужна какая-то анимация, отличная от статического заставки (например, круг загрузки).

Другие вопросы по тегам