2017-02-28 5 views
3

Iが申告を理解する:角2 - 宣言は何ですか?

  • のいずれかであるコンポーネント、ディレクティブまたはパイプ
  • モジュールのdeclarationsアレイ
  • に添加することができるいずれかに属し、一方のみ、モジュール

しかし、実際にはと宣言できますか?サービスクラスのソートはモジュールに属しているので、なぜサービスクラスは宣言できませんか?あるいは、より一般的には、モジュール内に何かを宣言することは何を意味しますか?

答えて

2

declarationsは、セレクタとパイプ名をAngularにします。
コンポーネントテンプレートをコンパイルするとき、セレクタとパイプ名が一致する要素に適用されるために、現在のモジュールとインポートされたモジュールの宣言で一致するコンポーネント、ディレクティブ、パイプを検索します。

2

宣言子を使用すると、角度コンパイラは、コンポーネント、ディレクティブまたはパイプを実際に含むモジュールを宣言できます。

コンパイラは、ビューを作成するファクトリを生成するので、それらのコンポーネントを宣言されたモジュールと統合し、それらを使用している可能性のある他のモジュールでのみ参照します。

この理由から、各コンポーネント、パイプ、およびディレクティブは、最大で1つのモジュールのみで宣言する必要があります。

サービスは残りの部分と一緒に置かれ、必要に応じてwebpackなどの他のツールや場合によってはブラウザによって間接的に参照されます。角度コンパイラはサービスコードをコンパイルする必要はなく、通常のjavascriptコードとして使用します。

編集:角度コンパイラによってサービスをコンパイルする必要がないことを指定します。もちろん、もしそれがtypescriptなら、それはまだコンパイルされますが、typescriptコンパイラは角度のないコンパイラによってコンパイルされます。

関連する問題