如何定义一个对象数组,对象数组| Angular 2

时间:2017-08-02 08:53:17

标签: angular typescript

我一直得到一个未定义的类型错误" ERROR TypeError:无法读取属性' length'未定义"。在我的类中,我有一个数组对象,它有另一个数组对象。基本上我有一个看起来像这样的课程:

export class ICase {
  shareCaseReason?: string;
  caseDetails?: ICasedeit;
  involvedPersonsAndOrganisations?: IInvolved;
  policeOfficers?: IPolice[];
  incidents?: IIncident[];
  offences?: IOffence[];
  suspect?: ISuspectDetails[];
  witnessStatements?: IStatements[];
  interviewNotes?: IIncident[];
  notebookEntries?: INotebook;
  victims?: IVictim[];
  witnesses?: IWitness[];
  physicalEvidence?: IEvidence[];
  otherDocumentaryEvidence?: IDocEvidence[];
}

我想从ISuspectDetails对象数组中显示一个属性。这个类看起来像这样:

export class ISuspectDetails {
  ageRange: string;
  juvenile: IJuvenile;
  timeincustody: ITimeInCustody;
  particularNeeds: IParticularNeeds;
  complaints: IComplaint[];
  principalEvidenceTypes: IEvidenceTypes;
  motivationTypes: IMotivationTypes;
  bailRecords: IBailRecords; 

  constructor() {
    this.complaints = [];
  };
}

我想在我的组件中显示ngFor上的ISuspectDetails投诉数组的长度。我的模板如下所示:

<div class="container-fluid scrollable-grid"  *ngIf='template && template.shareCase && template.shareCase.case && template.shareCase.case.suspects'>
  <div class="row gridData" *ngFor="let suspect of template.shareCase.case.suspects">
    <div class="col-2"> {{suspect?.chargeDate}} </div>
    <div class="col-1"> {{suspect?.complaint?.length}} </div>
  </div>
</div>

我已在我的组件中定义了这样的嫌疑人数组,并且我还在ISuspectDetails的构造函数中定义了投诉数组。我不确定如何定义这个数组,然后显示投诉数组的长度。

 this.template.shareCase.case.suspect = [];

非常感谢所有帮助!刚刚开始使用Angular,我掌握了大部分内容,但我似乎无法在任何地方找到解决这个问题的方法!

1 个答案:

答案 0 :(得分:2)

你的html中有一个拼写错误,complaint而不是complaints。改为:

   {{怀疑?.complaints?。长度}}