Канал значений ключей, используемый для печати вложенных значений

#angular #angular6

#angular #angular6

Вопрос:

Вот мой stackblitz https://stackblitz.com/edit/angular-vj4llg

Для печати вложенных значений массива я использую канал значений ключей

 <p>Use keyvalue pipe</p>
<ul *ngFor="let stdObj of student">
    <li>ID : {{stdObj.id}} Name : {{stdObj.name}}
        <ng-container *ngFor="let test of stdObj?.value | keyvalue">
            {{test.key}} : {{test.value}}
        </ng-container>
    </li>
</ul>
 

В typescript

  this.student = [
      {
        id:123,
        name: "Test",
        value:["{pass: true,verified: true}"]
      }, 
      {
        id:435,
        name:"Test12",
        value:["{pass: false, verified: true}"]
      }
    ]
 

Ожидаемый вывод как

ID : 123 Name : Test pass : true verified : true

Ответ №1:

В настоящее время, по вашему определению, value key содержит массив string: [«{…}»], поэтому вывод для него не будет показывать то, что вы ожидали; вместо этого он будет выводить значение индекса 0 в качестве значения ‘key’ для первого элемента, а «{…}’ в качестве его значения.

Итак, чтобы получить то, что вы ожидали, переопределите значение, как показано ниже:

 value: {pass: true,verified: true}
 

Комментарии:

1. то, что вы сказали, правильно, но как преобразовать ответ REST API