Вы перебираете массив competitions
, но пытаетесь получить competition.sessions[i]
.Вам нужно что-то вроде этого:
<ng-container *ngFor="let competition of competitions; index as i">
<h3>{{competition.name}}</h3>
<div *ngFor="let session of competition.sessions">
{{session.program.length}}
{{session.events.length}}
</div>
</ng-container>
Если вы хотите получить общее количество сеансов и событий для соревнования, вы должны посчитать их в своем файле ts
this.competitionResults = this.competitions
.map(competition => competition.sessions
.reduce((res, session) =>
({
programLength: res.programLength + session.program.length,
eventLength: res.eventLength + session.events.length,
}), {
programLength: 0,
eventLength: 0,
}))
)
и HTML:
<ng-container *ngFor="let competitionResult of competitionResults">
{{ competitionResult.programLength }}
{{ competitionResult.eventLength}}
</ng-container>