我正在尝试 使用数字或日期的语言环境格式对输入进行两种方式的数据绑定。参见下面的代码:
<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指令?
感谢您的任何建议。
归档时间: |
|
查看次数: |
323 次 |
最近记录: |