[解決済み] NgModuleにおける宣言、プロバイダ、インポートの違いは何ですか?
質問
Angular(Angular2+と呼ばれることもある)を理解しようとしているとき、次のようなものに出くわした。
@Module
:
-
輸入品
-
宣言
-
プロバイダー
解決するには?
Angularのコンセプト
-
imports
他のモジュールのエクスポートされた宣言を現在のモジュールで利用できるようにします。 -
declarations
は、現在のモジュールのディレクティブ (コンポーネントやパイプを含む) を、現在のモジュールの他のディレクティブが使用できるようにするためのものです。ディレクティブ、コンポーネント、パイプのセレクタは、それらが宣言されているか、インポートされている場合にのみ、HTMLに対してマッチングされます。 -
providers
は、サービスや値をDI(依存性注入)で知らしめるためのものです。ルートスコープに追加され、それらを依存関係に持つ他のサービスやディレクティブにインジェクションされます。
の特殊なケースとして
providers
は、遅延ロードされたモジュールで、それ自身の子インジェクタを取得します。
providers
は、デフォルトではこの遅延ロードされたモジュールにのみ提供されます (他のモジュールと同様にアプリケーション全体には提供されません)。
モジュールの詳細については、以下を参照してください。 https://angular.io/docs/ts/latest/guide/ngmodule.html
-
exports
に追加したモジュールで、コンポーネント、ディレクティブ、パイプを利用できるようにします。imports
.exports
は、CommonModule や FormsModule など、共有モジュールでよく行われるモジュールの再エクスポートにも使用できます。 -
entryComponents
で使用できるように、オフラインコンパイル用にコンポーネントを登録します。ViewContainerRef.createComponent()
. ルータ設定に使用されるコンポーネントは暗黙のうちに追加されます。
TypeScript (ES2015) のインポート
import ... from 'foo/bar'
(どの
に解決されるかもしれません。
index.ts
はTypeScriptのインポート用です。他のTypescriptファイルで宣言されている識別子をTypescriptファイル内で使用する場合は、常にこれらが必要です。
Angularの
@NgModule()
imports
とTypeScript
import
は
全く異なる概念
.
参照 jDriven - TypeScriptおよびES6インポート構文
<ブロッククオートそのほとんどは、実はTypeScriptも使っている素のECMAScript 2015(ES6)モジュール構文なのです。
関連
-
[解決済み] Angular 2の「コンポーネント」は既知の要素ではありません。
-
[解決済み] コンストラクタとngOnInitの違いについて
-
[解決済み] Angular 2+でngShowとngHideに相当するものは何ですか?
-
[解決済み】PromiseとObservablesの違いは何ですか?
-
[解決済み】Angularコンポーネントとモジュールの違いとは?
-
[解決済み】angular-cliでテストスペックを1つだけ実行する方法
-
[解決済み】take(1) vs first()
-
[解決済み] Angularアプリケーションが本番モードと開発モードのどちらで動作しているかを確認する方法
-
[解決済み] イベントリスナーを動的に追加する
-
[解決済み] angular ngModuleのentryComponentsとは何ですか?
最新
-
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で@Input()の値が変更されたときに検出する方法は?
-
[解決済み] Angularで変更検知を手動でトリガーする
-
[解決済み] Angularのエラーです。"Can't bind to 'ngModel' because it isn't a known property of 'input'"."
-
[解決済み】他のモジュールからコンポーネントを使用する
-
[解決済み] NgModule.schemasにCUSTOM_ELEMENTS_SCHEMAを追加してもエラーが表示される。
-
[解決済み] The Angular Compiler requires TypeScript >=3.1.1 and <3.2.0 but 3.2.1 found insteadでエラーが発生しました。
-
[解決済み] Angular HttpClient "パース中のHttp失敗"
-
[解決済み] index.tsは何に使われているのですか?
-
[解決済み] イベントリスナーを動的に追加する
-
[解決済み] ジョブ名「...getProjectMetadata」は存在しません。