angular: LOCATION_INITIALIZED что это такое и зачем его использовать? - PullRequest
0 голосов
/ 09 мая 2018

Я наткнулся на LOCATION_INITIALIZED при исследовании загрузки переводов ngx-translate в APP_INITIALIZER (см. введите описание ссылки здесь

import { Injector, APP_INITIALIZER } from '@angular/core';
import { TranslateService } from '@ngx-translate/core';
import { LOCATION_INITIALIZED } from '@angular/common';

export function appInitializerFactory(translate: TranslateService, injector: Injector) {
  return () => new Promise<any>((resolve: any) => {
    const locationInitialized = injector.get(LOCATION_INITIALIZED, Promise.resolve(null));
    locationInitialized.then(() => {
      const langToSet = 'en-GB'
      translate.setDefaultLang('en-US');
      translate.use(langToSet).subscribe(() => {
        console.info(`Successfully initialized '${langToSet}' language.'`);
      }, err => {
        console.error(`Problem with '${langToSet}' language initialization.'`);
      }, () => {
        resolve(null);
      });
    });
  });
}

Согласно исходному коду angular это когда в моем случае браузер (платформа) готов (DOM, Location и History готовы, я бы предположил).

К сожалению, это нигде не документировано.

Я использовал приведенный выше пример без LOCATION_INITIALIZED, и он работал как положено.

Так почему я должен заботиться о LOCATION_INITIALIZED и когда мне его использовать?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...