0

バックエンドに http クエリを実行するサービスを作成します。

getPlacesForUser(){
 this.http.get("http://localhost:8080/processPlaces")
  .map(res => res.text())
  .subscribe(
    data => this.result = data,
    err => this.logError(err),
    () => console.log('Places Request completed')
  )
}

リクエストが完了したら、コンポーネント側を更新したいと思います。

processPlaces(){
 this._backendService.getPlacesForUser();
}

コンポーネントとサービスの間で通信するにはどうすればよいですか?

さらに、私はベストプラクティスを探しています。

4

2 に答える 2

4

実際、オブザーバブルをメソッドから直接返し、getPlacesForUserサブスクライブ メソッドをアタッチすることができます。

  • サービス

    getPlacesForUser(){
      return this.http.get("http://localhost:8080/processPlaces")
        .map(res => res.text());
    }
    
  • 成分

    processPlaces(){
     this._backendService.getPlacesForUser()
      .subscribe(
        data => this.result = data,
        err => this.logError(err),
        () => console.log('Places Request completed')
      );
    }
    

result属性は、コンポーネントで使用できるコンポーネントの属性に対応します。

パイプを使用して、式でオブザーバブルを直接活用できることがasyncわかります (たとえば、式の中でngFor)。

この回答が役立つと思います:Angular 2ベータ版のサービスでHTTPコンポーネントを効率的に消費する方法は? .

お役に立てば幸いです、ティエリー

于 2016-01-12T09:18:50.613 に答える