【问题标题】:Missing locale data for the locale "de-DE"缺少区域设置“de-DE”的区域设置数据
【发布时间】:2021-02-02 12:53:28
【问题描述】:

我正在使用 Angular 9

在我的一个组件中,我使用如下货币格式:

import { formatCurrency } from '@angular/common';
formatCurrency(23456, 'de-DE', '$')

在这里,如果我将 de-DE 作为文化传递,我会收到如下错误:

缺少区域设置“de-DE”的区域设置数据

但是,如果我将文化作为 en-DE 传递,它就可以正常工作。

这里有什么问题?请帮忙。

【问题讨论】:

    标签: angular typescript locale format-currency


    【解决方案1】:

    默认情况下,angular 仅包含英语的语言环境数据。

    如果您希望它工作,您将需要导入并注册正确的语言环境。

    import { registerLocaleData } from '@angular/common';
    import localeDe from '@angular/common/locales/de';
    import localeDeExtra from '@angular/common/locales/extra/de';
    
    registerLocaleData(localeDe, 'de-DE', localeDeExtra);
    

    那么你应该可以使用它了。

    在你的 app.module.ts 中注册语言环境是最有意义的

    【讨论】:

    • 这里我们从 '@angular/common/locales/extra/de' 加载 localeDeExtra 但我如何动态加载它?我从 API 获取文化代码,在这种情况下如何从文化代码中获取额外的?
    • 如果不使用延迟加载,就无法动态加载它,所有导入都需要在编译时知道。您可以从这里导入所有语言环境:import '@angular/common/locales/global'
    • 对于延迟加载,看看这个方法:angulararchitects.io/aktuelles/…
    猜你喜欢
    • 2018-04-26
    • 2021-06-23
    • 1970-01-01
    • 2020-06-14
    • 1970-01-01
    • 2014-08-13
    • 2017-08-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多