Доступ к массиву внутри объекта с квадратными скобками внутри ngFor - PullRequest
0 голосов
/ 18 февраля 2020

По сути, я создал HTML, который похож на пример:

<div *ngFor="let formElements of formTemplate">
 <div *ngFor="let opt of staticEnumVals[formElements.testId]">
  <!-- do smth here -->
 </div>
</div>

По сути, formTemplate - это массив с объектами, каждый объект имеет свойство с именем «testId». staticEnumVals - это объект, который создается следующим образом

 {
  "testId": [ {},{},{} ],
  "testId2" [ {},{},{} ],
 }

Ключи "testId" и "testId2" являются фактическими ключами, которые соответствуют ключам из formTemplate [i] .testId. По сути, я хочу перебрать массив из моих staticEnumVals, и массив выбирается динамически на основе идентификатора из первой * ngFor

По сути, я ищу элегантный способ выполнить мою вторую итерацию, квадратные скобки не работают , Я думаю, что моя проблема достаточно ясна, извините за странный заголовок. Заранее спасибо

1 Ответ

1 голос
/ 18 февраля 2020

После добавления типов в staticEnumVals это сработало для меня.

@Component({
  selector: 'test',
  template: `
      <div *ngFor="let formElements of formTemplate">
          <div *ngFor="let opt of staticEnumVals[formElements.testId]">
              {{opt.name}}
          </div>
      </div>
  `
})
export class TestComponent {
   private formTemplate: { testId: string }[] = [
    {testId: '3'}, {testId: '2'}, {testId: '3'}
  ];

  private staticEnumVals: { [id: string]: [any] } = {
    '1': [{name: 'id1'}],
    '2': [{name: 'id2'}],
    '3': [{name: 'id3'}],
  };




}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...