如何在数组中获取对象的startTime
和endTime
?
<ion-col *ngFor="let col of timetable" >
<ion-row *ngFor="let item in col">
{{item.StartTime}}-{{item.EndTime}}<br>{{item.SubjectName}}
</ion-row>
</ion-col>
我想在HTML中为每个对象数组显示一列中的每个数据和不同的行。我已经完成了HTML部分,但它没有向我显示数据,而且我通过TypeScript嵌套for
循环实现了这一点,然后它打印了不同的对象:
for (let temp of temptab) {
for (let tmp of temp) {
console.log(JSON.stringify(tmp));
}
}
输出:
{
"startTime" : 08:30:00,
"endTime" : 08:55:00,
"subjectName" : English
}
我的JSIN数据:
{
"response": "OK",
"res": true,
"timetable": [
[
{
"startTime": "08:30:00",
"endTime": "08:55:00",
"subjectName": "English"
},
{
"startTime": "09:00:00",
"endTime": "09:55:00",
"subjectName": "English"
},
{
"startTime": "10:00:00",
"endTime": "10:55:00",
"subjectName": "Spanish/French"
},
{
"startTime": "11:00:00",
"endTime": "11:55:00",
"subjectName": "ICT"
},
{
"startTime": "12:00:00",
"endTime": "12:45:00",
"subjectName": "Lunch break"
}
]
]
答案 0 :(得分:1)
您的代码中存在一些错误,其中大多数是语法错误。
1 - 您的第二个*ngFor
错误,它不是let item in col
它必须是let item of col
,或者它会抛出一条错误消息,说明该属性并非如此。知道*ngForIn
,因为它是*ngForOf
。
2 - 属性名称错误,在您的JSON中,它们以小写字母(startTime
)开头,在您的模板中,您使用大写字母({{item.StartTime}}
)访问它们,因此它可以& #39; t访问,因为它不存在。
3 - 您的网格错误,row
必须先出现,然后是col
,所以必须是:
<ion-row>
<ion-col></ion-col>
</ion-row>
此外,您需要添加列属性以使其具有所需的大小,请检查grid docs以了解如何执行此操作。
4 - 这不是错误,因为我无法看到您的完整代码,所以我假设您已将{JSON响应的timetable
传递给分离的属性/变量。但是,如果不是,您必须更改第一个*ngFor
以反映它,以便它可以是*ngFor="let col of myVariable.timetable"
。
希望这有帮助。