如何在离子中获得数组Array?

时间:2018-02-14 12:16:10

标签: angular ionic-framework ionic2 ionic3

如何在数组中获取对象的startTimeendTime

<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"
      }
    ]
]

1 个答案:

答案 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"

希望这有帮助。