66* ユーザーはヒーロー情報を追加、編集、削除ができ、その変更をHTTPを通して保存することができます。
77* ユーザーは名前でヒーロー情報を検索できます。
88
9- このページを終えたとき、このアプリは次のようになります。<live-example ></lib -example >
9+ このページを終えたとき、このアプリは次のようになります。<live-example ></live -example >
1010
1111## HTTPサービスの有効化
1212
1313` HttpClient ` はHTTPを通してリモートサーバーと通信するための仕組みです。
1414
1515アプリ内のどこでも` HttpClient ` を利用可能にするには
1616
17- * ルート ` AppModule ` を開く
17+ * ルートの ` AppModule ` を開く
1818* ` @angular/common/http ` から` HttpClientModule ` をインポート
1919* ` @NgModule.imports ` の配列に` HttpClientModule ` を追加
2020
21- ## データサーバーをシミュレート
21+ ## データサーバーをシミュレートする
2222
2323本チュートリアルでは [ _ In-memory Web API_ ] ( https://github.com/angular/in-memory-web-api " インメモリWebAPI ") モジュール
2424を利用してリモートデータサーバーとの通信を再現します。
@@ -109,7 +109,7 @@ _Tour of Heroes_サンプルでは次のような内容の`src/app/in-memory-dat
109109 region="heroesUrl" >
110110</code-example >
111111
112- ### _ HttpClient_を使ってヒーローを取得
112+ ### _ HttpClient_を使ってヒーローを取得する
113113
114114現在の` HeroService.getHeroes() ` はRxJSの` of() ` を使って、モックのヒーロー配列を` Observable<Hero[]> ` として返します。
115115
@@ -209,7 +209,7 @@ _error handler_関数を`catchError`に返します。
209209
210210### _ Observable_に侵入
211211
212- ` HeroService ` のメソットはObservableな値の流れに入り込んで 、(` log() ` を通して)ページ下部にメッセージを送信します。
212+ ` HeroService ` のメソッドはObservableな値の流れに入り込んで 、(` log() ` を通して)ページ下部にメッセージを送信します。
213213
214214これはRxJSの` tap ` オペレーターを使って行います。
215215これはObservableな値を見て、その値に何か処理を行い、それらを渡します。
@@ -222,7 +222,7 @@ _error handler_関数を`catchError`に返します。
222222 region="getHeroes" >
223223</code-example >
224224
225- ### IDでヒーローを取得
225+ ### IDでヒーローを取得する
226226
227227ほとんどのWeb APIは ` api/hero/:id ` (` api/hero/11 ` のような) 形式のリクエストで_IDにより取得する_ことをサポートしています。
228228
@@ -237,8 +237,7 @@ _error handler_関数を`catchError`に返します。
237237* したがって、` getHero ` はヒーローの配列のObservableを返すのではなく、
238238` Observable<Hero> ` (_ ヒーローオブジェクトのObservable_ )を返すこと。
239239
240- ## ヒーローを更新
241- ## Update heroes
240+ ## ヒーローを更新する
242241
243242_ ヒーロー詳細_画面で、ヒーローの名前を編集します。
244243タイプすると、ページ上部のヒーローの名前が更新されます。
@@ -285,7 +284,7 @@ URLは変わりません。
285284ブラウザをリフレッシュして、ヒーローの名前を変更して、変更を保存し、"go back"ボタンをクリックしてください。
286285リストに変更された名前のヒーローが現れているはずです。
287286
288- ## 新しいヒーローを追加
287+ ## 新しいヒーローを追加する
289288
290289ヒーローを追加するためには、このアプリではヒーローの名前だけ必要です。
291290追加ボタンとペアになった` input ` 要素が使えます。
@@ -318,7 +317,7 @@ URLは変わりません。
318317
319318ブラウザをリフレッシュして、いくつかヒーローを登録しましょう。
320319
321- ## ヒーローを削除
320+ ## ヒーローを削除する
322321
323322リスト内の各ヒーローは削除ボタンを持つべきです。
324323
@@ -362,7 +361,7 @@ _削除されるべきヒーロー_をリストから即座に削除します。
362361
363362<code-example path =" toh-pt6/src/app/hero.service.ts " region =" deleteHero " title =" src/app/hero.service.ts (削除) " ></code-example >
364363
365- 下記に注目
364+ 下記に注目しましょう
366365
367366* ` HttpClient.delete ` を実行。
368367* URLはヒーローリソースのURLと削除するヒーローの` id `
@@ -371,7 +370,7 @@ _削除されるべきヒーロー_をリストから即座に削除します。
371370
372371ブラウザをリフレッシュして、新しい削除機能を試しましょう。
373372
374- ## 名前で検索
373+ ## 名前で検索する
375374
376375この最後のエクササイズでは、` Observable ` オペレーターをチェーンを学んで、
377376同じようなHTTPリクエストの数を減らし、効率よくネットワーク帯域を使えるようにします。
@@ -399,9 +398,6 @@ _削除されるべきヒーロー_をリストから即座に削除します。
399398
400399` DashboardComponent ` のテンプレートを開いて、ヒーロー検索のエレメント、` <app-hero-search> ` をテンプレートの下部に追加します。
401400
402- Open the ` DashboardComponent ` _ template_ and
403- Add the hero search element, ` <app-hero-search> ` , to the bottom of the ` DashboardComponent ` template.
404-
405401<code-example
406402 path="toh-pt6/src/app/dashboard/dashboard.component.html" title="src/app/dashboard/dashboard.component.html" linenums="false">
407403</code-example >
@@ -413,7 +409,7 @@ Angularが`app-hero-search`にマッチするコンポーネントを見つけ
413409
414410` HeroSearchComponent ` がまだありません。直しましょう。
415411
416- ### _ HeroSearchComponent_作成
412+ ### _ HeroSearchComponent_を作成する
417413
418414CLIで` HeroSearchComponent ` を作ります。
419415
@@ -444,18 +440,18 @@ CLIは`HeroSearchComponent`を作成し、`AppModule`のdeclarationsにそのコ
444440
445441` $ ` は` heroes$ ` が配列ではなく` Observable ` であることを示すために慣例でつけられるものです。
446442
447- ` *ngFor ` が ` Observable ` について何もできません。
443+ ` *ngFor ` は ` Observable ` について何もできません。
448444しかしパイプ文字(` | ` )に続く` async ` もあり、これはAngularの` AsyncPipe ` を意味します。
449445
450446` AsyncPipe ` は自動的に` Observable ` をsubscribeするので、コンポーネントクラスで何もする必要はありません。
451447
452- ### _ HeroSearchComponent_クラスの修正
448+ ### _ HeroSearchComponent_クラスを修正する
453449
454450生成された` HeroSearchComponent ` クラスとメタデータを次のように置き換えます。
455451
456452<code-example path =" toh-pt6/src/app/hero-search/hero-search.component.ts " title =" src/app/hero-search/hero-search.component.ts " ></code-example >
457453
458- ` heroes$ ` の宣言が` Observable ` であることに注意
454+ ` heroes$ ` の宣言が` Observable ` であることに注意しましょう。
459455<code-example
460456 path="toh-pt6/src/app/hero-search/hero-search.component.ts"
461457 region="heroes-stream">
@@ -484,7 +480,7 @@ CLIは`HeroSearchComponent`を作成し、`AppModule`のdeclarationsにそのコ
484480
485481{@a search-pipe}
486482
487- ### RxJSオペレーターのチェーン
483+ ### RxJSオペレーターの連結
488484
489485ユーザーのすべてのキーストロークの度に` searchHeroes() ` に新しい検索語を渡していては、
490486極端に多いHTTPリクエストを送信することになり、サーバーリソースを圧迫したり、
@@ -506,7 +502,7 @@ CLIは`HeroSearchComponent`を作成し、`AppModule`のdeclarationsにそのコ
506502* ` distinctUntilChanged ` はフィルター用の文字列が変わったときだけリクエストを送信することを保証します。
507503
508504* ` switchMap() ` は` debounce ` と` distinctUntilChanged ` を通り抜けた各検索語について検索サービスを呼び出します。
509- これは破棄された直前のobservableらをキャンセルして、最新の検索サービスのobservableのみを返却します 。
505+ これはそれまでの検索のobservableをキャンセルし、最新の検索サービスのobservableだけを返します 。
510506
511507<div class =" l-sub-section " >
512508
0 commit comments