さまざまなAngular JSの例を見て、グローバル定義ではなくモジュールでコントローラーを定義する必要があるというヒントを得ました。
あるアプリがあるとします<body ng-app='mymodule'>
-本体内で、mymoduleで作成されたコントローラーとグローバルに作成されたコントローラーを認識できます。
- モジュールで定義されたコントローラは、グローバル コントローラと比較して、グローバル変数にアクセスできません。真/偽 ?
- ここで注意すべきその他の重要な点はありますか?
さまざまなAngular JSの例を見て、グローバル定義ではなくモジュールでコントローラーを定義する必要があるというヒントを得ました。
あるアプリがあるとします<body ng-app='mymodule'>
-本体内で、mymoduleで作成されたコントローラーとグローバルに作成されたコントローラーを認識できます。
モジュールで定義されたコントローラは、グローバル コントローラと比較して、グローバル変数にアクセスできません。真実 ?
間違い。グローバル変数は、まあ、グローバルです。コントローラー内からそれらにアクセスできますが、テストが問題にならない場合を除き、そうすべきではありません。
ここで注意すべきその他の重要な点はありますか?
グローバル コントローラーは、他のモジュールからのサービスを使用することはできませんが、Angular 自体からは使用できません。別のモジュール (ディレクティブ、ファクトリ、プロバイダーなど) で定義されたコンポーネントを使用する場合は、独自のモジュールを作成し、それらを依存関係として宣言して、必要な場所に必要なビットを挿入できるようにする必要があります。
グローバル コントローラー IMO の唯一の用途は、シンプルでわかりやすい方法で Angular を説明することです。本番環境では使用しないでください。
アップデート
@dotnetcoder がコメントで指摘したように、明らかに Angular がモジュールをロードする方法が原因で、そのモジュールがフレームワークによって既にロードされている場合、グローバル コントローラーは実際にモジュールからサービスにアクセスできます。私は訂正します。しかし、技術的には可能ですが、誰もがそれを行うべき理由は思いつきません。私は以前に言ったことを支持します:運用環境でグローバル コントローラーを使用しないでください。