angular не отображает объект внутри массива объекта - PullRequest
1 голос
/ 19 апреля 2020

Я использую angular для получения данных из API. У меня есть структура данных: массив (объект) .array (объект)

  • это мои данные

enter image description here

  • и это компонент ts
export class LoginComponent implements OnInit {

collaborator:Collaborator[]=[];
entreprise:Entreprise[]=[];


  constructor(private serv:EntrepriseService) { }

 getcoll(){
  this.serv.getcollaboratorses().subscribe(res =>{
     this.collaborator = res.content;
     // this.entreprise=res.content.entreprise;
      console.log(res);
    },err =>{

      console.log(err);
    });
}

  • модуль сотрудничества
import {Entreprise} from './entreprise';
export interface Collaborator {

    id:String;
    name:String;
    email:String;
    password:String;
    phone:String;
    entreprise:Entreprise[];
    roles:any[];
}
  • модуль Entreprise
export interface Entreprise {

    id:String;
    name:String;
    socialPurpose: String;
    businessCode:String;
    activityDomain:String;
    email:String;
    password:String;
    logo:String;
    roles:any[];

}
  • html код
<p *ngFor="let ee of collaborator">
   {{ee.name}} - <ng-container *ngIf="ee?.entreprise"> {{ee.entreprise.name}} </ng-container>

  </p>

, когда я удаляю эту часть <ng-container *ngIf="ee?.entreprise"> {{ee.entreprise.name}} </ng-container> код работает нормально, и я могу браузер отображать имена всех соавторов, но когда я пытаюсь отобразить их роли или предприятия, я не могу ..

Ответы [ 2 ]

2 голосов
/ 19 апреля 2020

ee.entreprise - массив, имя там не существует. деформируйте его с помощью другого ngfor, как показано в коде ниже

<p *ngFor="let colab of collaborator">
   {{colab.name}} - 
    <ng-container *ngIf="colab.entreprise?.length"> 
        <span *ngFor="let ee of colab.entreprise"> 
            {{ee.name}} 
        </span>
    </ng-container>
  </p>
1 голос
/ 19 апреля 2020

ee.enterprise - это массив, ee.enterprise.name не существует. Сначала это должно быть проиндексировано. Например, "ee.enterprise[0].name, ee.enterprise[1].name и т. Д.

Скорее всего, потребуется другой ngFor для массива ee.enterprise.

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