热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

启动时从Angular8应用程序中的API延迟加载并在运行时设置LOCALE_ID

如何解决《启动时从Angular8应用程序中的API延迟加载并在运行时设置LOCALE_ID》经验,为你挑选了1个好方法。



1> Elias Garcia..:

是的,这是的常春藤i18n问题v8.x.x。我已将其发布在Angular仓库中,并已得到@Ocombe(正在研究Ivy i18n的作者)的确认。

如果您急于解决此问题,可以执行以下操作:

当Ivy正在搜索运行时语言环境时,您可以AppModule像这样简单地提供默认语言,然后提供APP_INITIALIZER

...
providers: [
    ...
    { provide: LOCALE_ID, useValue: 'en' }
    {
        provide: APP_INITIALIZER,
        useFactory: initializeAppSettings,
        deps: [AppInitializerService],
        multi: true
    }
    ...
]
...

这将首先设置默认语言环境,然后运行您的APP_INITIALIZER。接下来,在您的服务器CoreModule(仅加载一次)中,只需提供LOCALE_ID从后端获取的新文件:

...
providers: [
    ...
    {
        provide: LOCALE_ID,
        useFactory: (localeService: LocaleService) => localeService.getCurrentLocale(),
        deps: [LocaleService]
    }
    ...
]
...


推荐阅读
author-avatar
桃花救赎
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有