私は、Httpサービスを使用する基本的なAngular2アプリケーションを接続しようとしています。私が作成したいと考えブートストラップを通じてサービスにサービスを注入できますか?
- (それは別の問題だ。私が見てきたチュートリアルの大部分は、薄いコントローラの基本的な考え方は変わっていない限りComponent
が間違っているようだHttp
サービスを、消費を持っていることによって、これを行います) AngularのHttp
サービスを使用するサービスです。
boot.ts:
import {bootstrap} from 'angular2/platform/browser';
import {AppComponent} from './app.component';
import {HTTP_PROVIDERS } from 'angular2/http';
bootstrap(AppComponent, [HTTP_PROVIDERS]);
myService.ts:
import {Injectable} from 'angular2/core';
import {Http} from 'angular2/http';
@Injectable()
export class aService{
constructor(http:Http){
}
/** do some stuff *//
}
これは動作しますが、それは非常に思えるが、私はこれ以外のHttp
のサービスを注入する方法を見つけ出すことはできませんサービスのユーザにサービスの依存関係を知らせ、ブートストラッププロセスにそれらを注入することが要求されるのは間違いです。コンポーネントに同じ方法でproviders
配列をサービスに直接渡す方法があるようですが、見つけられません。私は何かを逃していますか?
"薄いコントローラの基本的な考え方が変わっていない限り" - それはありません。 [アーキテクチャの概要](https://angular.io/docs/ts/latest/guide/architecture)を引用してください。html)ガイド:「コンポーネントの役割は、ユーザーエクスペリエンスを有効にすることです。それは、ビューとアプリケーションロジックを仲介します...サービスにすべてのことを簡単に委任します。 –
ありがとう@MarkRajcok - これは私がそれを行うべきだと思う方法です。私の混乱は、ドキュメンテーションがそれ以上のことをしているコントローラを示しているという事実から来ている。 (例:https://angular.io/docs/js/latest/api/http/Http-class.html)コンポーネントが本当に薄いと思われる場合、おそらくhttpを頻繁に扱わないことになりますが、ドキュメントはそれが正常であることを暗示しています。 –
APIドキュメントの例は、アプリを設計するためのベストプラクティスに従うことはまずありません。それはおそらく妥当でしょう。 –