2016-08-22 5 views
0

私はAngular2アプリケーションを構築しており、ネストされたコンポーネントを使用してページを構築しています。Angular2はAPIエンドポイントにコンポーネントをバインドします

しかし、フィルタとして機能する1つのネストされたコンポーネントは、他のすべてのネストされたコンポーネントがそのフィルタに設定されたものに基づいて表示される情報を更新するようにする必要があります。 私は自分のページがどのようなものか、達成したいもののスキームをつけています。

enter image description here

私はすでに、ネストされたコンポーネントは、親コンポーネントがアクションを定義したものは何でもトリガするためには何でも上のイベントを発することができることを知っています。 - 指定されたAPIエンドポイントにコンポーネントをバインドし、そのコンポーネントが設定されているものに応じて(エンドポイントに要求を出して)表示される情報を更新できるようにすることはできますかフィルターに? - APIエンドポイントに直接バインドされていない場合、ページ上のすべてのコンポーネントをフィルタに依存させるにはどうすればよいですか?

よろしくお願いいたします。

答えて

0

すべてのコンポーネントからアクセスできるInjectable()サービスを作成する必要があります。

クラスを@Injectable()でアノテーションしてサービスを宣言します。次に、このクラスをアプリケーションモジュールのプロバイダ配列に追加します。これにより、すべてのコンポーネントがグローバルに利用できるようになり、シングルトンサービスとして機能します。最後に、コンポーネントクラスのコンストラクタを使用してコンポーネントにサービスを注入します。ここで、フィルタ結果コンポーネントがフィルタ設定の状態を読み取ることができる中央オブジェクトがあります。

サービスの詳細については、https://angular.io/docs/ts/latest/tutorial/toh-pt4.html

+0

こんにちはPeterさん。情報ありがとうございます。私はすでにそれを行うサービスを持っていますが、基本的に私に言っていることは、サービス内のコンポーネントごとに機能があります(そして、各コンポーネントにサービスを注入する必要がある)か、トップレベルのサービスを持っている親コンポーネントから子を初期化しますが、APIエンドポイントの権利に直接バインドする必要はありませんか?それは失望の少しですが、私は認めなければなりませんが、それはまだ合理的なアプローチのようです。 –

+0

サービスからAPIエンドポイントにアクセスし、フィルター状態が変更されたときにいつでもサービスからAPIエンドポイントにリクエストを送信する必要があると思います。結果コンポーネントが注入可能サービスからデータを取得するようにします。あなたが達成したいと思っている縛りをあなたに与えてくれるのではないでしょうか? –

関連する問題