【发布时间】:2019-04-17 03:20:39
【问题描述】:
我正在开发一个带有延迟加载模块的 Angular 7 应用程序。我也在使用角材料组件。我想在 datepicker 组件中本地化并支持多个语言环境。
我想在应用程序语言更改时为整个应用程序全局更改它。它可以通过 DateAdapter.setLocale 方法完成。 但是问题是,如果我在根模块上更改它,那么它不会在延迟加载的模块中更改。
是的,延迟加载的模块有它们的注入器并接收它们的 DateAdapter,其中的语言环境未设置为正确的。
如何实现整个应用中的 DateAdapter 是单例的?对于其他模块,有 forChild() 与 forRoot() API,但不适用于 datepicker 模块。
【问题讨论】:
-
你可以在你的单例服务中使用
providedIn: 'root',然后,当你需要使用它时,使用@Inject(DateAdapter),这样angular就知道它需要注入服务实例。 -
@briosheje 嗯,好的,但如果我理解正确,那么应该在每个延迟加载的模块中使用这个服务来设置 dateAdapter 语言环境。我对吗?我想在我的根组件中注入 DateAdapter 并调用一次 setLocale() 并在每个延迟加载模块中更改语言环境。
标签: javascript angular typescript angular7