[解決済み】Angular 6でサービスを生成する際に、InjectableデコレータでprovidedInの目的は何ですか?
2022-04-11 18:27:42
質問
Angular CLIでサービスを生成する際、Injectableデコレータのデフォルトが「root」の「provided in」プロパティで余分なメタデータを追加しています。
@Injectable({
providedIn: 'root',
})
providedInは具体的に何をするのですか? これは、アプリケーション全体に対して「グローバル」タイプのシングルトンサービスのようにサービスを利用できるようにしているのだと思いますが、このようなサービスは AppModule のプロバイダ配列で宣言する方がすっきりするのではないでしょうか?
解決方法は?
providedIn を使用すると、モジュールのプロバイダに追加することなく、インジェクタブルをモジュールのプロバイダとして登録することができます。
から
Docs
サービス自体はCLIが生成したクラスで、それが でデコレートされています。デフォルトでは、このデコレータは にはprovidedInプロパティがあり、サービスのプロバイダを作成します。 この場合、providedIn: 'root'は、サービスのプロバイダを作成します。 インジェクタで提供されます。
関連
-
[解決済み】Typescriptで、! (エクスクラメーションマーク/バン)演算子でメンバを再参照するのは?
-
Node Sass は現在の環境のためのバインディングを見つけることができませんでした。Windows 64ビット、Node.js 8.x。
-
[解決済み] Angular 2+でngShowとngHideに相当するものは何ですか?
-
[解決済み] Angular 2のキープレスごとの変更イベント
-
[解決済み] Angular HTTP GET with TypeScript エラー http.get(...).map is not a function in [null].
-
[解決済み] Angular2の括弧、括弧、アスタリスクの違いは何ですか?
-
[解決済み] Angular + Material - データソース(mat-table)を更新する方法
-
[解決済み] Angular2の変更検出:ネストされたオブジェクトに対してngOnChangesが発生しない
-
[解決済み] Angularのルーターリンクが対応するコンポーネントにナビゲートされない
-
[解決済み] Angular 2 - モデル変更後、ビューが更新されない
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Angular CLIでモジュール "angular-devkit/build-angular" が見つからない問題を解決する。
-
[解決済み] ExpressionChangedAfterItHasBeenCheckedErrorの説明
-
[解決済み] SubjectとBehaviorSubjectの違いは何ですか?
-
[解決済み] 設定ファイルにng serveのデフォルトのホストとポートを設定する。
-
[解決済み] Angular 4 HttpClient クエリパラメータ
-
[解決済み] Angular Materialダイアログエリアの外をクリックしてダイアログを閉じないようにする(Angularバージョン4.0以上で使用可能)
-
[解決済み] エクスポートされた2つのクラスを同じ名前でインポートする
-
[解決済み] Angular 2+ - ベースのhrefを動的に設定する
-
[解決済み] ファイル 'app/hero.ts' is not a module error in console, where to store interfaces files in directory structure with angular2?
-
[解決済み] VSCodeでAngularをデバッグする方法とは?