2016-05-21 9 views
0

は以下を見てください:第二のブロックはangular.module内で[]を必要とする理由依存性の注入特殊なケース

angular.module('myapp').controller('Gallery',Gallery); 
Gallery.$inject=['GalleryService']; 
function Gallery(GalleryService){...} 

angular.module('myapp',[]).service('GalleryService',GalleryService); 
GalleryService.$inject=['$http']; 
function GalleryService($http){...}; 

誰かが私に説明してもらえますか?

//Register module 
var myapp = angular.module('myapp', []); 

//Add controllers, service to already created module 
myapp.controller(...); 
myapp.service(...); 

二番目のパラメータ(空の配列が)のためである:場合、私は私がより明確なアプローチのためのようにあなたのコードを構造化することができ...

+1

は、モジュールへの参照を作成し、それを含めて新しいモジュールを作成します。あなたのプロジェクトに '.module( 'myapp'、[])'がありますか? – Clint

+1

モジュールを一度宣言しなければならず、2番目の引数を必要とします... 2番目の引数がなければgetterであり、モジュールが存在しない場合はエラーをスローします。 'module'のドキュメントを読む – charlietfl

答えて

1
angular.module('myapp', []) registers the module 
angular.module('myapp') references an already created module called 'myapp' 

を例外エラーを取得しています、それを省略します他のモジュールを使用したい場合は、新しいモジュールをインスタンス化する際に必要です。二番目の引数を省略

https://docs.angularjs.org/api/ng/function/angular.module

+0

いいえ、良い答えです。しかし、最初のブロックに[]を追加すると、なぜ例外エラーが発生するのですか?言い換えれば、私が上記の両方のブロックに対してこれを行うと、コードは機能しません... –