Angular5-具有区域设置日期/数字格式的双向数据绑定

Luk*_*988 6 angular

我正在尝试 使用数字或日期的语言环境格式对输入进行两种方式的数据绑定。参见下面的代码:

<input type="date" [ngModel]="user.date_created | date:'shortDate' " (ngModelChange)="user.date_created=$event" name="date_created"                                                 />
Run Code Online (Sandbox Code Playgroud)

app.module.ts还包括自定义语言环境('de')

import { registerLocaleData } from '@angular/common';
import locale_de from '@angular/common/locales/de';

registerLocaleData(locale_de);
Run Code Online (Sandbox Code Playgroud)

并包括在提供者中:

providers: [{
      provide: LOCALE_ID,
      useValue: 'de'
  }
],
Run Code Online (Sandbox Code Playgroud)

我能做的是在输入中获得漂亮的日期格式。用户看到了[20. 12. 2017],这是非常好的。但是,如果用户将输入更改为其他日期(手动),则模型上的值将从ISO格式更改为语言环境字符串:

在输入元素发生更改之前,通过API建立模型:

user.date_created: '2017-12-20T12:03:00'
Run Code Online (Sandbox Code Playgroud)

输入元素更改后的模型:

user.date_created: '23. 12. 2017'
Run Code Online (Sandbox Code Playgroud)

date_created属性是.ts中模型上的dateof日期。基本上,我对小数也有同样的问题。

我尝试了Tomas Trajan的自定义格式化程序指令,该指令可以完全满足我的需求,但语言环境是硬编码的。

有什么建议的方法如何使用语言环境格式设置双向数据绑定,或者如何将当前语言环境注入Formatter指令?

感谢您的任何建议。