2017-12-21 11 views
0

私は学習用の小さなイオンアプリを作成しています。私はjsonファイルからデータをロードし、そのデータを記述するInterfaceに割り当てたいと思います。 「私は(もIDEがいることを私に言っている)だけラインdata => this.entries = dataが間違っていると思うが、私はこの権利を行うには知っていることはできませんjsonファイルからのデータをInterfaceでロードする

import { Component } from "@angular/core"; 
import { HttpClient} from "@angular/common/http"; 

export interface PhonebookEntry { 
    name:   string, 
    telephone:  string, 
    description: string 
} 

@Component({ 
    selector: 'page-phonebook', 
    templateUrl: 'phonebook.html' 
}) 
export class PhonebookPage { 

    entries: Array<PhonebookEntry>; 

    constructor(public http: HttpClient) { 
     this.load_entries('assets/json/phonebook.json'); 
    }; 

    load_entries(filePath: string) { 
     return this.http.get(filePath) 
      .subscribe(
       data => this.entries = data 
      ); 
    }; 

} 

:しかし、私はそれを正しい方法を得ることに苦労しています正しい方法を説明しているドキュメントを見つけてください。実際にある場合は、私がこれについてのリソースをどこで見つけることができるのかを知ってうれしいです。

答えて

1

subscribe応答はオブジェクトではなく配列として返されます。したがって、entriesタイプを変更する必要があります。

entries: PhonebookEntry; 

サブスクライブでは、応答データのタイプを割り当てる必要があります。

load_entries(filePath: string) { 
    return this.http.get(filePath) 
     .subscribe(
      (data: PhonebookEntry) => this.entries = data // or use any type 
     ); 
}; 

Demo

関連する問題