首页 > 解决方案 > Angular 4 Typescript - 构造随后 7 天的日期数组

问题描述

我想构造一个包含 7 个日期的数组。这些日期将是 SelectedDate 之后的 7 天。我在 Component.ts 中编写了以下代码

public selectedWeekDates: Date [];

public selectedWeek: Date = new Date();

SetSelectedWeekDates(): void {
    var dte = new Date();
    dte = this.selectedWeek;
    for (let i: number = 1; i < 8; i++) {            
        this.selectedWeekDates[i - 1].setDate(dte.getDate() + i);
    }

}

我的html如下

.
.
.
<ng-container *ngFor="let dates of selectedWeekDates">
    <div style="padding: 10px;">
        {{ dates| date:"dd" }}
    </div>
</ng-container>
.
.
.

我在控制台中遇到错误

TypeError:无法在 xxxComponent.prototype.SetSelectedWeekDates 获取未定义或空引用的属性“0”(评估代码:179:143)

我可以知道我的代码有什么问题吗?

标签: angulartypescript

解决方案


在您的函数中,您正在对未定义setDate的元素使用函数。this.selectedWeekDates您应该使用this.selectedWeekordte来获取和设置您的日期,如下所示:

SetSelectedWeekDates(): void {
    let dte: Date = new Date(this.selectedWeek);        
     for (let i = 1; i < 8; i++) {            
        this.selectedWeekDates[i-1]=new Date(dte.setDate(dte.getDate() + 1));
        }

}

另外,不是i在 getDate() 之后添加,而是像上面那样添加 1,因为 setDate() 函数dte在每次迭代中递增一天,这意味着 dte 在每次迭代后都会更新。


推荐阅读