ヒーローのツアー - パート6 - https://angular.io/tutorial/toh-pt6 をダウンロードしてインストールしても問題ありません。これは、メモリ内のWeb APIを使用します。ヒーローの角4ツアー:パート6(マスターディテールサンプル)、REST APIを使用しているときに機能しない
代わりに、REST(JSON)APIを使用するように変更したいと考えています。
私は以下の変更を行いました。
app.module.ts は
InMemoryWebApiModule.forRoot(InMemoryDataService)
InMemoryWebApiModule.forRoot(InMemoryDataService, {passThruUnknownUrl: true})
に主人公を変更しました.service.ts が変更されました プライベートheroesUrl = 'api/heroes';
private heroesUrl = 'https://.../getdata.php
private heroesDetailsUrl = 'https://.../getdatadetails.php
にマスタービューは 詳細ビューが変更を行った後、英雄-details.component.ts
で、マスタービューが正常に動作し、私heros.component.htmlですマスターデータ一覧を参照してください。 マスタービューから行を選択すると、詳細ビューが表示されますが、詳細データは表示されません。 ヒーローオブジェクト(マスターで選択されたオブジェクトの詳細が含まれていますが、常にJavascriptコンソールに未定義として表示され、プロパティにアクセスできません)
ヒーロー詳細私は詳細サンプルは、私がインメモリーウェブAPIに切り替えた場合に完璧に動作しますが、RESTでは動作しません? を表示するには渡さMasterViewに反対して選択されるように変更する必要がある他に何
ngOnInit(): void {
console.log('inside hero-details.component');
console.log(this);
this.route.params
.switchMap((params: Params) => this.heroService.getHero(+params['id']))
.subscribe(hero => this.hero = hero);
}
.components.ts api。REST APIによって返されるデータの形式は、inMemoryapiと全く同じです。 応答したすべての方に感謝します。
あなたのPHPコードがデータを返していますか? Fiddlerを使用してレスポンスを検査してみてください。 –
heroService getHeroメソッドに選択されたヒーローのIdパラメータを渡しているのがわかりますが、実際には残りのAPIにパラメータを渡していますか? URLパラメータとしてgetdatadetails.phpエンドポイントにIdを付けるはずですか? (例:?id = hero_id)。 – effy
どういうわけか、残りのエンドポイントにIDを送信する必要があります。あなたの残りのAPIルートがどのように設定されているかはわかりませんが、getHeroメソッドの最初の行に表示されているように、ヒーローの詳細URL用の新しい変数を作成したので、新しい変数を使用するようにメソッドを変更するだけでなく、ヒストリのIDをアングルのようにルートの一部として例として、またはルートパラメータとして。 – effy