【发布时间】:2019-10-27 07:31:28
【问题描述】:
在我的 Angular 项目中,我尝试使用 *ngFor 来显示日历。
我有我的月份和每个月的天数,在一个对象数组中:
public months: Array<Object> = [
{ month: "January", days: 31 },
{ month: "February", days: 28 },
{ month: "March", days: 31 },
{ month: "April", days: 30 },
{ month: "May", days: 31 },
{ month: "June", days: 30 },
{ month: "July", days: 31 },
{ month: "August", days: 31 },
{ month: "September", days: 30 },
{ month: "October", days: 31 },
{ month: "November", days: 30 },
{ month: "December", days: 31 },
];
然后我尝试使用 *ngFor 显示它们。月份显示正确,但我不太清楚如何正确显示每一天。这是我的 html 文件:
<div class="year" style="width: 100%; margin-top: 10px;">
<h1 style="text-align: center; font-weight: 500;">2019 Vacation Calendar</h1>
<div class="months" *ngFor="let month of months">
<div class="month">
<ul>
<li>
{{month.month}}<br>
<span style="font-size:18px">{{currentYear}}</span>
</li>
</ul>
</div>
<ul class="weekdays">
<li>Su</li>
<li>Mo</li>
<li>Tu</li>
<li>We</li>
<li>Th</li>
<li>Fr</li>
<li>Sa</li>
</ul>
<ul class="days">
<li *ngFor="let day of month.days; let i=index">{{i}}</li>
</ul>
</div>
</div>
现在,我收到一条错误消息,提示它找不到“'number' 类型的不同支持对象 '31'”。我很确定这是因为我没有做正确的事情来让我的 ngFor 从 1 计数到 31 或者每个月有多少天,但我不知道该怎么做。非常感谢任何帮助,谢谢!
【问题讨论】:
-
如果你想制作一个日期选择器,这里有一个很棒的教程(也可以用来查看日期)medium.com/@chiodigiovanni1/…
-
请注意,大约每 4 年左右,2 月的天数会不正确...
-
@AndrewAllen 我希望创建与日期选择器相同的外观,只是没有可点击功能,并且一次查看所有月份而不是一个月份,所以我一定会检查一下,因为我在思考如何确定每天从一周中的哪一天开始时遇到了麻烦,等等。谢谢!
-
我认为您需要使用某种日期库或 Date 对象。我很懒,所以 moment.js 是我想要的,但没有理由不能将 JavaScript Date 与 getDay() 之类的方法一起使用。 stackoverflow.com/a/13669839/4711754 和 stackoverflow.com/a/315767/4711754