Токен инжектора PLATFORM_INITIALIZER не работает - PullRequest
0 голосов
/ 10 апреля 2019

Проблема Токен PLATFORM_INITIALIZER не работает и не выполняется после инициализации платформы.

согласно документации, мы можем использовать этот токен для выполнения чего-либо после инициализации / начальной загрузки приложения.

Документация говорит A function that will be executed when a platform is initialized. также, есть очень документация об использовании этого токена и примеры.https://angular.io/api/core/PLATFORM_INITIALIZER

Уже пробовал Я пытался использовать PLATFORM_INITIALIZER аналогично тому, как он был протестирован модулем, но не получил никакого успеха.https://github.com/angular/angular/blob/f8096d499324cf0961f092944bbaedd05364eea1/packages/platform-browser/testing/src/browser.ts

ссылка на стек * https://stackblitz.com/edit/angular-zza3af?file=src/app/app.module.ts

function initBrowserTests() {
  window.alert('PLATFORM_INITIALIZER called');
}

const featureFlagsFactory = () => {
  window.alert('APP_INITIALIZER called');
  return () => {
    return {};
  };
};

export const appInitializers = [
  {
    provide: APP_INITIALIZER,
    useFactory: featureFlagsFactory,
    multi: true
  },
  {
    provide: PLATFORM_INITIALIZER,
    useValue: initBrowserTests,
    multi: true
  },
];

@NgModule({
  providers: [ appInitializers ],
  imports:      [ BrowserModule, FormsModule ],
  declarations: [ AppComponent, HelloComponent ],
  bootstrap:    [ AppComponent ],
})
export class AppModule { }

Ожидание initBrowserTests () Должна быть вызвана Fn, которую я хотел бы использоватьинициализировать мой AuthService.

1 Ответ

0 голосов
/ 10 апреля 2019

Предполагается, что этот токен будет передан на createPlatformFactory или через extraProviders, когда мы назовем, например, platformBrowserDynamic:

platformBrowserDynamic([{
  provide: PLATFORM_INITIALIZER,
  useValue: initBrowserTests,
  multi: true
}]).bootstrapModule(AppModule)

Разветвленный стек-блиц

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