2013-06-11 3 views
5

컨트롤러 선언과 관련된 규정이 있습니까? (또는 모듈 수준 구성의 모든 형태). 두 가지 방법 사이에 어떤 혜택을컨트롤러 선언을위한 각도 협약

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

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

대 있습니다

내가 사용하는 두 가지 방법을 발견했다? 또한, 선호하는 (또는 떠오르는) 협약이 있습니까?

저는 컨트롤러와 모듈의 선언이 많은 파일에 걸쳐있을 수있는 많은 모듈을 가진 중요하지 않은 앱의 이점에 특히 관심이 있습니다. 개인적으로

+0

난 그냥 당신이 일반적으로 사용되는 준 두 번째 방법을 언급 할 예를 들면 jfiddles, 테리의 답변은 실제 앱에 훨씬 더 중점을두고 있습니다. –

답변

6

I 다음을 수행하십시오 (후 이유) :

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합니다. John의 사이트를 체크 아웃하지 않은 경우 매우 좋습니다. 나는 기부 한 그의 비디오에 너무 감명 받았고, 당신도 그렇게해야합니다!

+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]);