未使用平台浏览器动态提供程序
Platform browser dynamic providers not used
我正在尝试使用文档方法在我的 angular 应用引导程序之前设置我的 LOCALE_ID 令牌:
import { LOCALE_ID } from '@angular/core';
import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
import { AppModule } from './app/app.module';
platformBrowserDynamic().bootstrapModule(AppModule, {
providers: [{provide: LOCALE_ID, useValue: 'fr-FR' }]
});
在我的 AppModule 的构造函数中检查令牌时,它似乎已重置为默认值
export class AppModule {
constructor(@Inject(LOCALE_ID) private locale: string) {
console.log('Locale - App module', this.locale);
}
}
输出:Locale - App module en-US
我在这里错过了什么?
这是重现该问题的 Stackblitz:
https://stackblitz.com/edit/angular-2rdtb6
您可以尝试在 app.module.ts
中设置提供商
@NgModule({
providers: [
{
// your objects here
}
]
})
您应该将提供程序传递给平台注入器而不是编译器注入器:
platformBrowserDynamic([ {provide: LOCALE_ID, useValue: 'fr-FR' }])
\/
extraProviders
.bootstrapModule(AppModule);
请注意,要在 stackblitz 中对其进行测试,您必须重新加载应用程序,因为 Angular 仅创建一次平台。
另请参阅:
我正在尝试使用文档方法在我的 angular 应用引导程序之前设置我的 LOCALE_ID 令牌:
import { LOCALE_ID } from '@angular/core';
import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
import { AppModule } from './app/app.module';
platformBrowserDynamic().bootstrapModule(AppModule, {
providers: [{provide: LOCALE_ID, useValue: 'fr-FR' }]
});
在我的 AppModule 的构造函数中检查令牌时,它似乎已重置为默认值
export class AppModule {
constructor(@Inject(LOCALE_ID) private locale: string) {
console.log('Locale - App module', this.locale);
}
}
输出:Locale - App module en-US
我在这里错过了什么?
这是重现该问题的 Stackblitz: https://stackblitz.com/edit/angular-2rdtb6
您可以尝试在 app.module.ts
中设置提供商@NgModule({
providers: [
{
// your objects here
}
]
})
您应该将提供程序传递给平台注入器而不是编译器注入器:
platformBrowserDynamic([ {provide: LOCALE_ID, useValue: 'fr-FR' }])
\/
extraProviders
.bootstrapModule(AppModule);
请注意,要在 stackblitz 中对其进行测试,您必须重新加载应用程序,因为 Angular 仅创建一次平台。
另请参阅: