2014-10-07 2 views
1

임 다음 파일로 새로운 각도 프로젝트를 진행 :AngularJS와 컨트롤러와 서비스 생성

//app.js 
var mainApp = angular.module('mainApp', ['serviceA', 'serviceB', "ctrlA", 'ctrlB']); 

//ctrlA.js 
var ctlA = angular.module('serviceA', []); 
ctlA.controller('menuController', ['$scope', 'serviceA', function($scope, serviceA) { 
    // ... 
}]); 

하면 이런 식으로 할 수없는 이유가 있나요?

//ctrlB.js 
angular.module('mainApp') 
.controller('ctrlB', ['$scope', 'serviceA', function($scope, serviceA) { 
    // ... 
}]); 

답변

1

언급 한 제 노비는 절대적으로 옳습니다. 그러나이 정보를 추가하여 더 나은 대답을 결론 지을 생각입니다.

앱을 여러 개의 세그먼트로 모듈화하여 쉽게 이해할 수 있습니다. 세그먼트 화는 일 수 있습니다. 서비스 유형을 바탕으로

-이 작은 응용 프로그램
모듈의

var mainApp = angular.module('mainApp', [ 
    'app.controllers',  // Controllers 
    'app.directives',  // Directives 
    'app.filters',   // Filters 
    'app.services'   // Services 
]); 

예 구현에 도움이 될 것입니다.

var ctrls = angular.module('app.controllers'); 
ctrls.controller('menuController', ['$scope', 'serviceA', function($scope, serviceA) { 
    // ... 
}]); 

각 모듈의 목적에 따라. 예를 들어 차트 관련 클래스를 별도의 모듈로 분리하여 주 코드베이스와 분리 할 수 ​​있습니다. 이 모듈은 상위 모듈과 독립적으로 작동 할 수 있으므로 다른 누군가의 병렬 프로그래밍을 허용합니다.

+0

그래 맞네. 그것의 새로운 응용 프로그램과 모듈은 우리가 물건을 알아내는 것처럼, 아직 최고의 이름을 가지고 있지 않습니다. – Brad8118

0

두 가지 구현이 모두 유효하지만 모듈 시스템을 사용하면 더 큰 응용 프로그램을 모듈로 분리 할 수 ​​있습니다. serviceA, serviceB, ctrlA 및 ctrlB가 밀접하게 관련되어 있으면 모듈로 묶을 수도 있습니다. 다른 곳에 서비스를 제공하려면 mainApp.services이라는 모듈을 만들 수 있습니다.

코드를 구성하는 방법은 사용자에게 달려 있지만, 이유는 모듈이 존재하기 때문입니다. 그들 안에 하나 이상의 "물건"을 가지고있다.

관련 문제