1. ホーム
  2. angularjs

[解決済み] サービス、ディレクティブ、モジュールの違いは何ですか?

2022-04-27 06:49:59

質問

いろいろなドキュメントを読んでいますが、だんだんわからなくなってきました。 私は、基本的に、(1)と(2)の違いがわかりません。

  • サービス
  • ディレクティブ
  • モジュール

カスタムコンポーネントを多く見かけますね。ディレクティブを使っていることもあれば、サービスを使っていることもあります。いつもモジュールから始まっています。この3つのタイプの違いは何なのか、どなたか例を挙げて説明していただけませんか?

どのように解決するのですか?

モジュールは、ディレクティブ、サービス、定数など、他の多くのものを配線する場所であるとお考えください。モジュールは他のモジュールに注入することができ、高いレベルの再利用が可能です。

angularアプリを書く場合、アプリケーションコード(テンプレートなし)のトップレベルモジュールを持つことになります。

サービスは主にコントローラ間で通信するためのものですが、あるサービスを別のサービスにインジェクトすることができます。サービスはデータストアにアクセスする方法としてよく使われ、人々はngResourceのようなangular APIをラップすることになります。このテクニックは、テスト(特にモッキング)が非常に簡単になるので便利です。認証やロギングなど、他のことをするためのサービスを持つことができます。

ディレクティブは、ウィジェットを作成したり、jqueryプラグインのように既存のものをラッピングするために使用されます。既存のプラグインをラップするのは難しいかもしれません。もし、双方向のデータバインディングが必要ないのであれば、ラップする必要はないでしょう。

ディレクティブはまた、DOM操作やDOM-eventのキャッチなどを行うための場所でもあります。DOM に関することは、コントローラやサービスの中で行うべきではありません。ディレクティブの作成は、かなり複雑になる可能性があります。IMHOでは、まずAPIを見て、あなたが探しているものを実現できるものを探すか、AngularのGoogleグループにアドバイスを求めることをお勧めします。