Craig が何をするng-app
か、どのように機能するかを尋ねているとは思いません。
彼は、角度のある名前を作成した人々がそのディレクティブを作成した理由を尋ねていると思いますng-app
。なぜ彼らはそれに名前を付けなかったのですかng-module
?ng-module
より理解しやすいでしょう。
たとえばng-controller
、コントローラーにng-module
名前を付ける必要があり、モジュールに名前を付ける必要があります。それらangular
を作成するメソッドにはmodule()
andという名前が付いていますがcontroller()
、「アプリ」と呼ばれるメソッドやエンティティはありません。
私はクレイグに同意する傾向があります。そうは言っても、なぜ彼らがそれを名付けたのかを推測すると、HTMLに1つのディレクティブng-app
しか持てないからだと思います。ng-app
HTML ページに複数のモジュールを関連付けたい場合は、プログラムで行うことができます。
HTMLng-app
をモジュールでブートストラップするためのユーティリティであり、モジュールを HTML に関連付ける一般的な方法ではありません。
それが示唆するドキュメントを見ると:
このディレクティブを使用して、AngularJS アプリケーションを自動ブートストラップします。ngApp ディレクティブは、アプリケーションのルート要素を指定し、通常はページのルート要素の近く ( または タグなど) に配置されます。
HTML ドキュメントごとに自動ブートストラップできる AngularJS アプリケーションは 1 つだけです。ドキュメントで最初に見つかった ngApp は、アプリケーションとして自動ブートストラップするルート要素を定義するために使用されます。HTML ドキュメントで複数のアプリケーションを実行するには、代わりに angular.bootstrap を使用して手動でブートストラップする必要があります。AngularJS アプリケーションを相互にネストすることはできません。
http://docs.angularjs.org/api/ng/directive/ngApp
つまり、ディレクティブが必要な場合は、関数ng-module
をラップするためにいつでも独自のディレクティブを作成できますangular.bootstrap()
。これを行う方法の詳細とコードについては、私が書いたブログ投稿で見つけることができます: AngularJS: ngModule で ngApp の制限を回避する