猿问

未使用平台浏览器动态提供程序

我正在尝试使用文档方法在我的 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


慕村9548890
浏览 123回答 2
2回答

郎朗坤

您应该将提供者传递给平台注入器而不是编译器注入器:platformBrowserDynamic([ {provide: LOCALE_ID, useValue: 'fr-FR' }])                                          \/                                    extraProviders  .bootstrapModule(AppModule);  请注意,要在 stackblitz 中对其进行测试,您必须重新加载应用程序,因为 Angular 仅创建一次平台。

慕田峪4524236

您可以尝试在 app.module.ts 中设置提供程序@NgModule({  providers: [    {       // your objects here    }  ]})
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答