我正在尝试使用数字或日期的区域设置格式对输入进行双向数据绑定。见下面的代码:
<input type="date" [ngModel]="user.date_created | date:'shortDate' " (ngModelChange)="user.date_created=$event" name="date_created" />
app.module.ts还包括自定义区域设置('de')
import { registerLocaleData } from '@angular/common';
import locale_de from '@angular/common/locales/de';
registerLocaleData(locale_de);
也包含在提供者中:
providers: [{
provide: LOCALE_ID,
useValue: 'de'
}
],
我能做的是在输入中获得相当格式化的日期。用户看到[20. 12. 2017]这是一流的。但是,如果用户将输入更改为其他日期(手动),则模型上的值将从ISO格式更改为区域设置字符串:
来自API的模型,在输入元素更改之前:
user.date_created: '2017-12-20T12:03:00'
输入元素更改后的模型:
user.date_created: '23. 12. 2017'
属性date_created是.ts中模型上的日期类型。基本上,我也有同样的小数问题。
我尝试了Tomas Trajan的自定义格式化程序指令,它完全符合我的需要,但区域设置是硬编码的。
是否有任何推荐的方法如何使用区域设置格式设置双向数据绑定或如何将当前区域设置注入Formatter指令?
感谢您的任何建议。