Angular 7 Array of Objects в ngFor показывает только данные с определенным значением свойства объекта - PullRequest
0 голосов
/ 22 сентября 2019

У меня следующая проблема с отображением и сохранением данных в массив объектов.У меня есть форма с 5 вкладками.Я могу переключаться между этими вкладками и показывать разные данные в таблице.У меня также есть возможность добавить новые данные в конкретную таблицу вкладок.У меня есть форма, которая называется «Форма дополнительных данных».Форма работает нормально, как только я добавляю некоторые данные в эту форму и нажимаю на кнопку отправить, я помещаю объект с этими данными в мой массив, который называется arrayData .Я использую * ngFor для отображения данных: <tr class="body-row" *ngFor="let position of arrayData; index as i;">

Проблема в том, что я помещаю эти объекты в массив, который является глобальным (и это работает), но я хотел бы показать эти данные только на определенныхТаблица вкладок (я также хотел бы добавить новую форму на конкретной вкладке).Чего я хотел бы добиться - это поместить эти данные в массив, но в директиве * ngFor я хотел бы показывать только данные с определенным индексом зоны.То, что я делаю, я получаю индекс вкладки, например, первая вкладка с индексом 0, вторая вкладка с индексом 1 и т. Д. Затем я проверяю в моем коде с регистром переключения, если selectedTabIndex, например, 0, и я 'm помещаю это значение в мое свойство объекта "зона", чтобы оно выглядело как зона: 0. В этом случае у меня есть объект, который выглядит следующим образом: {zone: 0, data1: "33", data2: "4", data3: "5", data4: true} Если я помещаю данные на вкладку с индексом 2, я устанавливаю этоинформация к моему объекту, так что zone:2 будет добавлено к моему следующему объекту.Мой массив выглядит так:

[
0: {zone: 1, data1: 1, data2: 2},
1: {zone: 1, data1: 23, data2: 33},
2: {zone: 2, data1: 33, data2: 44}
]

и т. Д.в зависимости от того, на какой вкладке я разместил свою форму.

Существует ли быстрое решение для отображения данных на вкладке с индексом 0, объектах со значением zone:0, на вкладке со значением индекса 1 zone:1 и т. д.?Может быть, я должен использовать отдельные массивы объектов для конкретных зон?Спасибо.

1 Ответ

0 голосов
/ 22 сентября 2019

= Вы можете фильтровать массив, если я понимаю вашу проблему наилучшим образом.

getData(){
    return arrayData.filter(d => d.zone === this.selectedZone);
}

Используйте этот метод в ngfor.

...