2014-05-20 1 views
0

내 응용 프로그램에서 여러 모듈을, JS 분리 된 파일의 모든 모듈 정의 :이에서여러 모듈로드 오류

angular.module('app.module1.module2').controller('myController', function(){}); 

: 내가 지난 모듈 컨트롤러를 만들려면 다음

angular.module('app', ['app.module1']); 

angular.module('app.module1', ['app.module1.module2']); 

angular.module('app.module1.module2', []); 

그리고 케이스에 오류가 있습니다

Module 'app.module1.module2' is not available! You either misspelled the module name or forgot to load it. If registering a module ensure that you specify the dependencies as the second argument. 

어디에서 문제를 설명 할 수 있습니까? 초보자 질문에 대해 유감입니다. 참고 : 모든 정의는 자체 js 파일입니다.

+1

app.module1.module2에서 컨트롤러를 어디에서 만들고 있습니까? app.module.module2 모듈을 만드는 위치와 다른 파일에 있습니까? 다른 파일에 있으면 모듈 선언 파일을 먼저로드해야합니다. – theJoeBiz

+0

http://plnkr.co/edit/L310PHMhewEZMakGKBGv?p=preview @theJoeBiz –

+0

@theJoeBiz에 따라 모든 모듈이로드되기 전에 컨트롤러를 만들어야합니다. 예, 서로 다른 파일입니다. 하지만 모듈 로딩이 앵귤러 부트 스트래핑 후에 만 ​​일어날 것이라고 생각했습니다. – havenchyk

답변

1

모듈을 작성하기 전에 사용할 수 없으므로 어떤 순서로로드했는지 먼저 알아야하므로 모듈 정의를 먼저로드 한 다음 모듈 정의 파일 다음에로드 된 파일에서 모듈을 다시 열 수 있습니다.

그러나 파일 당 하나의 모듈을 고수하는 것이 더 합리적입니다. 그렇게하면 모듈이 선언 된 순서에주의를 기울이지 않아도됩니다.

그래서 당신은 대신 일을 작성할 수

angular.module('app.module1.module2.controllers',[]) 
.controller('myController', function(){}); 

다음

angular.module('app.module1.module2', ['app.module1.module2.controllers']); 

을 당신이 작동 app.module1.module2app.module1.module2.controllers 후로드 할 경우에도 마찬가지입니다.

+0

모듈을 하나의 파일로 정의하겠습니까? 여러 종속성을 가진 여러 모듈이 있으므로 테스트 및 확장을 염두에 두어야합니다. – havenchyk

+0

예는 파일 당 하나의 모듈을 정의하거나 모듈이 정의 된 순서를 추적합니다. 테스트는 문제가 아닙니다. 여전히 종속성을 조롱 할 수 있습니다. – mpm

+0

파일 당 모듈을 정의하는 것이 더 확장 가능할 것이라고 생각합니다. 따라서 주문을 고칩니다. 감사합니다. – havenchyk