好きな場所にコードを配置できます。それらをangularモジュールに入れると、angularはそれを見つけます。したがって、次の/app/common/services/foo.js
ようなサービスがある場合:
angular.module('app').service('foo', function() { ... });
でこれを行うことができますuserController
:
angular.module('app').controller('UserController', function($scope, foo) { ... });
foo
ここでは、コントローラーにどのように注入したかを示します。AngularDependency Injection
システムは、コードをどこに置いても見つけられるほどスマートです。
とは異なるモジュールを作成することもapp
できます。
angular.module('other').service('bar', function() { ... });
app
モジュールを定義する場所は、次のようになります。
angular.module('app', []);
そこに新しいモジュールを依存関係として追加する必要があるだけです。それ[]
が目的です。
angular.module('app', ['other']);
これで、コントローラーでもサービスを使用できますbar
:)
一方、あなたが話している構文は、次のような配列表記です。
angular.module('app').controller('FooCtrl', ['$scope', 'foo', function($scope, foo) { ... }]);
これは、コードを縮小するときにコードをマングルする場合に必要です。縮小されたコードでは、次のようなものが得られる可能性があるためです。
angular.module('app').controller('FooCtrl', ['$scope', 'foo', function(f, g) { ... }]);
ご覧のように、関数のパラメーターは現在f
とg
であり、Angular はこれらの名前に基づいて何を注入するかを認識していないため、指定した文字列を調べて、f
is$scope
およびg
isであることを認識しfoo
ます。
この注釈を直接使用する必要はありません。 ngminのように、それを行うツールがいくつかあります。
乾杯。
EDIT : すべての JavaScript ファイルを a に追加する必要があります<script>
。そうしないと、ロードされず、Angular はそれを見つけられません。
ファイルを 1 つずつ追加するのは面倒です。5 つまたは 200 になる可能性があるからです。
それらを連結することをお勧めします。そのgrunt-concat-sourcemap
ためには、ソースマップが生成されるため、アプリ全体で 1 つのファイルが作成されますが、開発ツールではそれらが別々のファイルに表示されます。
javascript アプリを開発するための優れたツールである linemanjs を確認することをお勧めします。ファイルを連結し、ソース マップ、圧縮、配列表記なども...