Angular ngFor чтение подмассивов в элементы списка

Я создаю список матов с элементом мат-списка. У меня проблемы с чтением подмассивов в моем элементе управления пользовательского интерфейса списка. Он отображается пустым. Для части коллекции, которая не включает подмассивы, она отображается, но данные в подмассивах не считываются неправильно с моим угловым кодом ngFor.

Я погуглил и попытался изменить код ngFor. Я переместил его между тегами mat-list и mat-list-item, но пользовательский интерфейс показывает пустые ячейки.

Коллекция Sale имеет строку выходного дня, которую я могу отобразить без проблем. Я установил ngFor на цикл по дням продажиWeekdays, чтобы я мог читать коллекцию массивов каждый день. В коллекции каждого дня я хочу использовать метрику для отображения строки значения и массива подкатегорий, которые мне понадобятся для добавления еще одного цикла *ngFor.

Любая помощь приветствуется. Спасибо.

Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Angular и React для вашего проекта веб-разработки?
Angular и React для вашего проекта веб-разработки?
Когда дело доходит до веб-разработки, выбор правильного front-end фреймворка имеет решающее значение. Angular и React - два самых популярных...
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Мы провели Twitter Space, обсудив несколько проблем, связанных с последними дополнениями в Angular. Также прошла Angular Tiny Conf с 25 докладами.
Угловой продивер
Угловой продивер
Оригинал этой статьи на турецком языке. ChatGPT используется только для перевода на английский язык.
Мое недавнее углубление в Angular
Мое недавнее углубление в Angular
Недавно я провел некоторое время, изучая фреймворк Angular, и я хотел поделиться своим опытом со всеми вами. Как человек, который любит глубоко...
Освоение Observables и Subjects в Rxjs:
Освоение Observables и Subjects в Rxjs:
Давайте начнем с основ и постепенно перейдем к более продвинутым концепциям в RxJS в Angular
1
0
794
2

Ответы 2

Проблема в том, что вы неправильно обращаетесь к своему json:

"let day of saleWeek.days"

даст вам эту часть вашего json:

{ day: [] }

Если вы хотите получить доступ к значению, вам нужно повторить итерацию дважды:

"let days of saleWeek.days"
"let dayInformation of days.day"

Где часть days.day будет получать доступ к вашему массиву дней. Затем вы можете получить доступ к своему значению:

{{dayInformation.value}}

Посмотрите этот jsfiddle для примера реализации: https://jsfiddle.net/9o48jqty/

Привет, я изменил свой код в соответствии с вашим советом, но все еще пустые ячейки: <div fxLayout = "row" fxFlex = "9%" fxFlex.gt-sm = "9%" *ngFor = "let days of saleWeek.days"> <div fxLayout = "column" fxFlex > <mat-list class = "wf-list" > <mat-list-item fxLayoutAlign = "end" (click) = "onRowClicked(value)" *ngFor = "let dayInfo дней .day"><span>{{dayInfo.value}}</span></mat-list-item> </mat-list> </div> </div>

c0micrage 18.02.2019 15:02

Вам все равно нужно будет повторить их saleWeeks. Итак, если у вас 3 вложенных массива, вам нужно перебрать их все: *ngFor = "let saleWeek of sales" *ngFor = "let days of saleWeek.days" *ngFor = "let dayInformation of days"

skolldev 18.02.2019 15:05

Я сделал. 1-й div - это ngFor = "let saleweek of sales"> В подразделе я добавил ngFor = "let days of saleweek.days". Внутри этого подраздела я добавил элемент mat-list-item с let dayInfo из days.day.

c0micrage 18.02.2019 15:07

Спасибо, что нашли время ответить на мой вопрос. Еще раз спасибо.

c0micrage 18.02.2019 15:27

Вы должны использовать другой ngFor, чтобы получить значения внутреннего цикла.

Вы не можете получить значения из следующего кода. Итак, не используй следующий код

   <mat-list-item fxLayoutAlign = "end" (click) = "onRowClicked(value)" *ngFor = "let day of saleWeek.days"><span>{{day.value}}</span></mat-list-item>

                        </mat-list> 

Вы можете использовать следующий код вместо:

<div class = "sub_container"  *ngFor = "let subsaleWeek of  saleWeek.days "> 
<mat-list-item fxLayoutAlign = "end" (click) = "onRowClicked(value)" *ngFor = "let day of subsaleWeek.day"><span>{{day.value}}</span></mat-list-item>

                    </mat-list> 
</div>

Поднять настроение !! @c0micrage

Jeyam Prakash 18.02.2019 15:26

Спасибо, что нашли время ответить на мой вопрос. Еще раз спасибо.

c0micrage 18.02.2019 15:27

Другие вопросы по теме