【问题标题】:Angular Material Datepicker internationalization example doesn't workAngular Material Datepicker 国际化示例不起作用
【发布时间】:2020-02-27 19:26:51
【问题描述】:

This example 位于 Angular Material documentation 中,用于动态更改日期选择器组件的区域设置。但它不起作用。奇怪的是,文档页面上的代码 sn-p 有效,但 stackblitz 无效。

【问题讨论】:

    标签: angular datepicker angular-material


    【解决方案1】:

    如果您想更改组件的语言,您需要在构造函数中声明 DateAdapter,然后将语言设置为:

    constructor(private dateAdapter: DateAdapter<Date>) {
        this.dateAdapter.setLocale('it');
    }
    

    在我的示例中,我将语言设置为意大利语。

    【讨论】:

    • 我使用服务在我的应用程序中完成所有与国际化相关的事情。
    【解决方案2】:

    根据本地设置,角度 DateAdapter 中似乎有一些 issues。

    例如:

    作为workaround,移入延迟加载模块的逻辑似乎有效

    Demo Stackblitz

    1. 单击“测试”链接会加载惰性 /test 路由。 app.module 和 lazy.module 都导入 SharedModule ,它导入 材料。
    2. 日期选择器默认为英文。单击“在应用模块上设置区域设置”按钮应将其设置为德语,但事实并非如此。
    3. 单击“在惰性模块中设置区域设置”按钮可以正常工作。

    解决方法来源:

    https://github.com/angular/components/issues/12891#issue-355191637

    https://github.com/angular/components/issues/15419#issuecomment-491772822

    【讨论】:

      【解决方案3】:

      可以为 Angular 材料日期选择器动态更改语言环境。

      工作示例 - https://codesandbox.io/s/material-date-locale-jyylz

      【讨论】:

        猜你喜欢
        • 2014-07-26
        • 2015-09-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-10-15
        • 2013-04-05
        • 2014-02-15
        • 1970-01-01
        相关资源
        最近更新 更多