【发布时间】:2017-03-30 23:10:18
【问题描述】:
我正在构建一个简单的响应式表单。为简单起见,假设我要显示的唯一数据是日期。
test.component.html
<form novalidate [formGroup]="myForm">
<input type="date" formControlName="date">
</form>
test.component.ts
private date: Date = Date.now();
ngOnInit() {
this.myForm = this.fb.group({
date: [this.date, [Validators.required]]
});
}
模板上的输入类型=日期字段要求日期格式为“yyyy-MM-dd”。 event 中的值是一个 JavaScript Date 对象。
如何在模板级别修改数据,使输入值正确?
我的尝试:
执行此操作的一种方法是将 DatePipe 注入我的组件并在代码中应用转换。
date: [datePipe.transform(this.event.date, 'yyyy-MM-dd'), [Validators.required]]
但这会将模板的实现细节与组件联系起来。例如,如果 NativeScript 模板要求日期格式为MM/dd/yyyy,该怎么办? formGroup 不再有效。
【问题讨论】:
-
对不起,但我认为这是唯一的方法......我个人会使用服务来检索日期格式(通过
MyModule.forRoot("myFormat")动态设置),因此您可以在多个平台上使用它。
标签: date angular angular-pipe