2017-11-30 5 views
0

私は、Angularアプリケーションのすべてのコンポーネントが使用するSpinnerServiceクラスを持っています。毎回各コンポーネントのコンストラクタに明示的に挿入するのを避ける方法はありますか?アングルサービスをすべてのコンポーネントで使用できるようにする

+2

いいえ正当な理由でこれを行う方法はありません。それは、クラスを実際に必要とするコンポーネントごとに15文字を節約するためにモジュール性を破るでしょう。すべてのコンポーネントがスピナーサービスにアクセスする必要はありません。これは、アプリケーション設計を再訪する必要があるように思えます。 – bryan60

+0

HttpClientModuleを使用している場合は、各リクエストでスピナーを表示するために[このパッケージ](https://github.com/mpalourdio/ng-http-loader)を試すことをお勧めします。これにより、各コンポーネントにサービスを注入する際の問題が解消されます。 – Alex

答えて

1

申し訳ありませんが、それは唯一の方法です。階層構造を持っていれば、ルートコンポーネントに注入して入力パラメータとして送信することもできますが、それは余分な変数を作成することにもつながります。

0

はい、appModuleで提供できます。あなたがappmoduleから何かを注入して提供するときはいつでも、それはあなたのアプリケーションを通して利用可能であることを覚えておいてください。

+0

しかし、彼はコンストラクタで変数を避けるように求めており、あなたはそれをappmoduleプロバイダに提供することを話しています。 –

+0

彼は、それぞれのコンポーネントにサービスを明示的に注入したくありません。これは、複数のプロバイダを意味します。コンポーネントごとに1つです。 –

+0

申し訳ありません@VinodBhavnani、私は自分自身をとてもうまく説明していないと思います。 – Sammy

関連する問題