2017-07-27 2 views
0

だからこのエラーが発生し続ける "TypeError:プロパティ 'otherDocumentaryEvidence'未定義"を読み取ることができません "。私は何とかこのオブジェクトを初期化する必要があることを理解していますが、私はこれのプロセスを確信していません。私の理解では、オブジェクトが私のオブジェクトは、私が初期化私のコンポーネントのコードシェアケースオブジェクトとotherDocumentaryEvidenceオブジェクトの両方でこのOnInitで定義されているネストされたオブジェクトを初期化する方法は? Angular2

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

のように見えるテンプレートサービス

ngOnInit(): void { 
    this._templateService 
     .getTemplateSnapshot(this.template) 
     .responseData() 
     .subscribe(templateSnapStream => { 
      return this.shareCase = templateSnapStream.result; 
     }) 
} 

からngOnInit段階で定義されてしまうことですそのようなコンストラクタで:

this.shareCase = new ShareCase(); 
this.shareCase.otherDocumentaryEvidence = new IDocEvidence(); 

しかし、私はまだ同じエラーが発生しますか?なぜこれがわからないのですか?このオブジェクトを呼び出すテンプレートの行もこのようになります

<div *ngIf='shareCase && shareCase.case.otherDocumentaryEvidence && shareCase.case.otherDocumentaryEvidence.length > 0'> 

ご協力いただけると助かります。

答えて

1

あなたは、あなたがnull /未定義のチェックのために疑問符を追加shareCase.caseチェック

+0

マジック!どうもありがとうございます! –

+0

あなたをお手伝いします – Aravind

1

てみてください欠けているあなたの*ngIf

<div *ngIf='shareCase && 
      shareCase.case && 
      shareCase.case.otherDocumentaryEvidence && 
      shareCase.case.otherDocumentaryEvidence.length > 0'> 

で追加のチェックが欠落しています。

<div *ngIf='shareCase && shareCase.case?.otherDocumentaryEvidence && shareCase.case?.otherDocumentaryEvidence.length > 0'> 
関連する問題