问题,初始化平台后,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
stackblitz链接 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。
答案 0 :(得分:0)
例如,当我们调用createPlatformFactory
时,该令牌应该传递给extraProviders
或通过platformBrowserDynamic
传递:
platformBrowserDynamic([{
provide: PLATFORM_INITIALIZER,
useValue: initBrowserTests,
multi: true
}]).bootstrapModule(AppModule)