2013-06-11 16 views
5

コントローラの宣言に関して確立された規約がありますか? (またはモジュールレベルの設定の任意の形式)。コントローラを宣言するための角括弧

私が使用して2つの異なるアプローチを観察している:

angular.module('ShoppingCart').controller('CheckoutCtrl', function($scope) { ... }); 

var shoppingCartModule = angular.module('ShoppingCart',[]) 
shoppingCartModule.controller('CheckoutCtrl', function($scope) { ... }); 

は、2つのアプローチのいずれかのメリットがありますか?また、好ましい(または新興の)条約がありますか?

私は、コントローラとモジュールの宣言は、多くのファイルにまたがることが多くのモジュールと非自明なアプリのための利点で、特に興味があります。

+0

は、私はちょうどあなたが一般的に使用された第二の方法を言及したいと思います例のjfiddlesとテリーの答えは、実際のアプリの方がはるかに重視されています。 –

答えて

6

個人的に私が(理由の後に)次の操作を行います

angular.module('myApp', []); 

angular.module('myApp').controller('myController', ['$dependency', 'anotherDependency',  
    function($dependency, anotherDependency) { 
    ... 
    } 
]); 

理由:

  • 私がしようとすると重複した文字列と同等で依存の宣言グローバルスコープ
  • は、安全に縮小化することができます避けますあなたのコード
  • それは一貫して清潔で、全体の話がそこにあります。例えば。 app.somethingとすれば、appは `angular.module( 'myApp')と何か分かりません。

編集:ちょうど私がしばらく前にこの非常に話題に見たクールなビデオを思い出し - http://www.egghead.io/video/tTihyXaz4Boを。あなたがジョンのサイトをチェックアウトしていないなら、私はそれを強く勧めます。私は寄付した彼のビデオにとても感心しました。

+0

私はこの方法も使います。 – finishingmove

+0

これはうまく見えますが、最初にまずangular.moduleを宣言していますか? – bsiddiqui

+1

@bsiddiqui私は 'angular.module( 'myApp'、['ui.bootstrap']);'のような依存関係を注入すると考えています。 –

2

個人的に、私はそれがこのよう少しクリーナーも見つける:

angular. 
    module('myApp'). 
    controller('myController', ['$dependency', 'anotherDependency', myAppController]); 

function myAppController($dependency, anotherDependency) { 
    ... 
} 

それとも、もっとよりよい:

var Controllers = {}; 

Controllers .someController = function myAppController($dependency, anotherDependency) { 
    ... 
} 

angular. 
    module('myApp'). 
    controller('myController', ['$dependency', 'anotherDependency', Controllers .someController]); 
関連する問題