我正在使用angular从api中获取数据。我拥有的数据结构是array(object).array(object)
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[];
}
export interface Entreprise {
id:String;
name:String;
socialPurpose: String;
businessCode:String;
activityDomain:String;
email:String;
password:String;
logo:String;
roles:any[];
}
<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>
时,代码可以正常工作,并且浏览器可以显示所有协作者的姓名,但是当我尝试显示其角色或企业时,我无法..
答案 0 :(得分:2)
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 :(得分:1)
ee.enterprise
是一个数组,ee.enterprise.name
不存在。
首先,必须对其进行索引。例如“ ee.enterprise[0].name
,ee.enterprise[1].name
等。
ngFor
数组很可能需要另一个ee.enterprise
。