Как получить 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
}

Мои данные JSON:

{
  "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"
      }
    ]
]
2
Tushar Kotecha 14 Фев 2018 в 15:16
Что ты имеешь в виду. Я не получил в результате того, что вы хотели?
 – 
Vitaly Menchikovsky
14 Фев 2018 в 15:24
Как получить startTime и Endtime в ionic2?
 – 
Tushar Kotecha
14 Фев 2018 в 15:29
Это объект в массиве в массиве timetable[0][0].startTime, рабочий пример в этой скрипке
 – 
kevinSpaceyIsKeyserSöze
14 Фев 2018 в 15:46
См. Мой отредактированный вопрос
 – 
Tushar Kotecha
14 Фев 2018 в 16:16

1 ответ

Лучший ответ

В вашем коде есть некоторые ошибки, большинство из которых являются синтаксическими ошибками.

1 - Ваш второй *ngFor неправильный, это не let item in col, он должен быть let item of col, иначе он выдаст ошибку, говоря, что свойство не знает *ngForIn, потому что это { {X4}}.

2 - Имя свойств неверно, в вашем JSON они начинаются с строчных букв (startTime), а в вашем шаблоне вы обращаетесь к ним с прописными буквами ({{item.StartTime}}), поэтому он не может получить доступ, поскольку он не существует.

3 - Ваша сетка неправильная, сначала должен идти row, а затем col, поэтому он должен быть:

<ion-row>
  <ion-col></ion-col>
</ion-row>

Также вам необходимо добавить атрибуты столбца, чтобы он имел желаемый размер, проверьте сетку документы, чтобы узнать, как это сделать.

4 - Это не ошибка, поскольку я не вижу ваш полный код, поэтому я предполагаю, что вы передали timetable своего ответа JSON в отдельное свойство / переменную. Но если нет, вы должны изменить свой первый *ngFor, чтобы отразить его, чтобы он мог быть чем-то вроде *ngFor="let col of myVariable.timetable".

Надеюсь это поможет.

1
Gabriel Barreto 14 Фев 2018 в 17:03