javascript - 离子日期时间错误:无法读取未定义的属性“toISOString”
问题描述
我想将当前日期显示为默认值,如果我使用 formControlName 则不起作用,但我需要使用 formControlName。
这是我的 HTML 文件
<ion-item>
<ion-label color="primary"> Start date </ion-label>
<ion-datetime [value]="startDate.toISOString()" formControlName="startDate" required></ion-datetime>
</ion-item>
<div id="startDateErrorMessage" *ngIf="newProjForm.controls['startDate'].invalid &(newProjForm.controls['startDate'].dirty || newProjForm.controls['startDate'].touched)">
<span class="error ion-padding" *ngIf="newProjForm.controls['startDate'].errors.required"> Date is required </span>
</div>
这是我的 TS 文件
import { FormBuilder, FormGroup, Validators } from '@angular/forms';
import { Component, OnInit } from '@angular/core';
import { AlertController } from '@ionic/angular';
@Component({
selector: 'app-new-project',
templateUrl: './new-project.page.html',
styleUrls: ['./new-project.page.scss'],
})
export class NewProjectPage implements OnInit {
newProjForm: FormGroup;
startDate: Date = new Date();
constructor(private formBuilder: FormBuilder, private alertCtrl: AlertController) { }
ngOnInit() {
this.newProjForm = this.formBuilder.group({
startDate: ['' ,[Validators.required]]
});
}
}
当我编译项目时,我收到了这个错误
“错误错误:未捕获(承诺):TypeError:无法读取未定义的属性'toISOString' ”
“ TypeError:无法读取未定义的属性‘toISOString’ ”
谁能指出我正确的方向?
解决方案
要在表单构建器对象中设置初始值,请不要在 html 模板中使用 [value]。您可以将 '' 替换为字段的初始值,例如:
this.newProjForm = this.formBuilder.group({
startDate: [(new Date()).toISOString(), [Validators.required]] –
});
推荐阅读
- c++ - c++中的方阵
- swiftui - 为什么在使用文本时出现“调用初始化程序时没有匹配项”错误?
- multithreading - 在 OMP (gfortran) 中使用原子的奇怪结果
- google-cloud-platform - 带有 OS-Login 的 VM 实例无法正常工作或无法通过 ssh 连接到计算 VM
- azure - Azure 功能在本地工作,但在上传到 azure 后不工作
- python - 为什么`type.__new__`调用`__init_subclass__`?
- powershell - 在 PowerShell 中添加到 CSV 文件
- azure-databricks - 如何在 Databricks 上使用 Azure Spot 实例
- c++ - 设定行为的推理
- python - Python subprocess.run 超时在 Windows 和 Linux 上的行为不同