2017-11-22 27 views
1

APIから抽出されたデータを表示しようとしています。私はそれがコンソールに表示されるので、うまくやっています。 データを配列に格納しようとするとエラーが発生します。角:未定義のプロパティ '0'を読み取ることができません

インタフェース:

interface ISearchResponse { 
    appendix: IAppendix; 
} 

interface IAppendix { 
    Airports:IAirport[]; 
} 

interface IAirport { 
    name: string; 
    city:string; 
} 

問題があるコード:

ngOnInit() { 
    console.log('SC: in OnInIt'); 
    this._searchEngine.getSites().subscribe(sites => { 
     this.airports = sites; 
     console.log("SC: SITES:"+this.airports.appendix.Airports[0].name); 

    }, 
     error => this.errorMessage = <any>error); 
    } 

エラー:

ERROR TypeError: Cannot read property '0' of undefined 
+0

インターフェイスを実装するクラスを含めてください。 – Daryl

答えて

0

私はそれを解決しました。私が間違っていたことは、「空港」に資本「A」を与えたことでした。 JSONデータに「空港」があるとき。したがって、存在しなかったアレイには何も入っていませんでした。

2

時にはthis.airports.appendix.Airports空である可能性は、前にチェック を追加します。エルにアクセスするementsはインデックスを使用しています

this.airports = sites; 
if(this.airports.appendix.Airports && this.airports.appendix.Airports.length > 0){ 
    console.log("SC: SITES:"+this.airports.appendix.Airports[0].name); 
} 
+0

あなたの応答をありがとう、残念ながら、同じエラーがスローされます。 – JohnDoe

+0

データがアレイに確実に入るようにするにはどうすればよいですか? – JohnDoe

+0

その大丈夫、私が間違っていたことは、「空港」に資本「A」を与えたことでした。 jsonが「空港」としてそれを持っていたとき。したがって、配列には何も入っていませんでした。 – JohnDoe

関連する問題