Angular TypeScript添加一天功能
我不熟悉Angular 2和打字脚本。我已经改变了jQuery,我在一些简单函数上遇到了一些问题。现在,我有一个带有两个日期选择器的UI,我正试图在第一个日期选择器更改后(添加一天)自动完成第二个日期选择器。根据这一点,以及我对JS的期望,代码必须是这样的:Angular TypeScript添加一天功能,angular,date,typescript,angular2-template,Angular,Date,Typescript,Angular2 Template,我不熟悉Angular 2和打字脚本。我已经改变了jQuery,我在一些简单函数上遇到了一些问题。现在,我有一个带有两个日期选择器的UI,我正试图在第一个日期选择器更改后(添加一天)自动完成第二个日期选择器。根据这一点,以及我对JS的期望,代码必须是这样的: updateEndDate(): void { this.endDate.setDate(this.startDate.getDate() + 1); } 我有一个具有startDate和endDate参数的类,updateEndDa
updateEndDate(): void {
this.endDate.setDate(this.startDate.getDate() + 1);
}
我有一个具有startDate和endDate参数的类,updateEndDate()方法绑定到startDate datepicker输入的onChange()事件
当我尝试时,我在控制台中收到以下消息:
this.endDate.getDate is not a function at ItemTemplateComponent.webpackJsonp..
我想我做错了什么,但我不知道是什么。有人知道我错过了什么吗
编辑:
我尝试使用一个辅助日期参数来检查函数或参数是否有问题。我这样做:
auxDate: Date;
ngOnInit(): void {
this.auxDate = new Date();
}
updateEndDate(): void {
console.log(auxDate);
this.auxDate.setDate(this.auxDate.getDate() + 1);
console.log(auxDate);
}
这很有效。所以我的问题是参数
我的班级定义:
export class DateRange {
startDate: Date;
endDate: Date;
}
我使用设置“YYYY-MM-DD”格式的日期选择器设置startDate。这可能是问题所在吗
更新(一个解决方案,不是我认为最好的方式): 正如我所评论的,问题在于当使用双向数据绑定将startDate值(日期)与模板中相应的输入类型Date绑定时,输入的值被理解为字符串2,而不是日期,因此updateEndDate()方法崩溃 我找到的解决方案,但我认为不是最好的(我认为一定有一种方法可以对日期应用两种数据绑定),就是只绑定onChange事件,并在updateEndDate()方法中将字符串转换为日期,如下所示: 在模板中:
(change)="updateEndDate($event.target.value)"
在组件中:
updateEndDate(dateValee: string): void {
this.endDate = new Date(dateValue);
... OTHER LINES
}
现在我遇到了一些问题,因为“新日期(dateValue)”没有给我正确的日期,但这是另一个问题(我认为是因为GMT对某些标准有问题)。不确定这是否有帮助,我使用此语句获取所选日期 在html中
(更改)=“updateEndDate($event)”
在ts中
updateEndDate(dateValee:MatDatepickerInputEvent){
this.endDate=新日期(dateValue.value);
}
如果您有任何特殊原因不想使用矩.js?我遵循angular.io文档,这就是原因。我已经看到,当我使用datepicker设置日期时,startDate的类型变为string,这就是问题的原因。为什么会发生这种情况?我的意思是,似乎我只能对一些小类型的数据使用双向数据绑定,比如字符串和数字,但不能对日期进行绑定,这是正确的吗?或者有办法做到这一点?@user3368457如何将updateEndDate
绑定到onChange
事件?来自表单的日期可能是字符串,而不是日期实例。在调用任何日期方法之前,尝试使用“newdate”再次解析日期