angular - 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)
我可以知道我的代码有什么问题吗?
解决方案
在您的函数中,您正在对未定义setDate
的元素使用函数。this.selectedWeekDates
您应该使用this.selectedWeek
ordte
来获取和设置您的日期,如下所示:
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 在每次迭代后都会更新。
推荐阅读
- google-sheets - VLOOKUP 与 Google 电子表格中的每 2 个比较参数?
- excel - 向下拖动公式而不更改第 1 行的值?
- excel - 如何修复对未定义方法 Maatwebsite\Excel\Excel::create() 的调用?
- javascript - 我不明白为什么 displayAllTodoItems() 在这段代码中被执行了两次
- python - - 不支持的操作数类型:“NoneType”和“NoneType”
- javascript - 无法解码字符串。(第 2 行,文件“代码”,项目“项目名称”)
- git - 如何使用来自本地开发机器的 ssh 更新服务器上的 git 裸存储库?
- android - saveToGallery SQLiteDatabase:插入 bucket_id 时出错
- javascript - 有没有什么方法可以在不迭代的情况下从对象数组中创建属性数组?
- sql - 如何在sql中连接多个表