Webサービスから返されたjsonオブジェクトの配列をAngular 2アプリケーションの正しい型付けされたオブジェクト配列にマップする方法を理解できません。角2の公式の例:強く型付けされたjsonオブジェクト配列のマッピングのバグ
アンギュラ2の公式の例のplunkerに見られるように、期待されるオブジェクトはヒーロータイプではなく、オブジェクトタイプであり、ヒーロー:HeroListComponentのHeroメンバーは実際にはObject []です。あなたは、配列は強く型付けされていないコンソールで見ることができます:
http://plnkr.co/edit/Qa22yzPh3JWI8lNZ99Ik?p=preview
私は(余分にconsole.logを追加しました)あなたは私たちがヒーローを持っていないブラウザのコンソールで見ることができる、ヒーローのコマンドを追加するために呼び出します[]、オブジェクト[]。
this.http.get(this._heroesUrl)
.map(res => <Hero[]> res.json().data)
.catch(this.handleError);
を、私たちは[] []の代わりにヒーローのオブジェクトを取得します:
ので、どうやらここでの変換は機能しません。
正しくタイプされたオブジェクトにjsonをマップする方法についてのアイデアはありますか?
さらに詳しい情報: https://angular.io/docs/ts/latest/guide/server-communication.html
あなたの答えをありがとう!はい、私は、あなたが言ったようにメソッドが動作しないことを観察し、このスレッドを開始しました:) これはインターフェイスであるべきだと言うなら..これについての良い例は分かりますか?パブリックメソッドを持つモデルオブジェクトを持ち、web APIから来るjsonでそれらを埋め込むための最良の方法は? つまり、自動マッパーはありませんか?ネストされたオブジェクトの場合、手動マッピングを行うのは本当に負担になります。 興味深いことに、この基本的なケースの良い例が見つかりませんでした...ウェブAPIから来るjsonデータでtypescriptクラスからインスタンス化されたオブジェクトを生成するには –
また、インターフェイスを別のオブジェクトのコンストラクタに渡して、それ自体を初期化し、テンプレートから呼び出す必要があるパブリックメソッドを公開する必要がありますか? おそらく私のアプローチは間違っています...ありがとう! –