angular-seed을 사용하여 각도 프로젝트를 시작했으며 index-async.html에서는 각도 로더와 script.js을 기본적으로 사용했습니다. 이 프로젝트에 두 개의 컨트롤러를 추가했습니다. 각 컨트롤러는 두 개의 개별 파일에 있습니다. 제 컨트롤러 파일은 다음과 같이 시작한다 :각도 로더 및 스크립트와 비동기 적으로 별도의 파일에 여러 컨트롤러로드
가angular.module('myApp.controllers').controller('FirstCtrl', ...
상기 제 2 제어부의 파일은 다음과 같이 시작한다 :
angular.module('myApp.controllers').controller('SecondCtrl', ...
그리고 메인 app.js 파일 :
angular.module('myApp.controllers', []);
angular.module('myApp', [
'myApp.controllers'
])
세 개의 파일이 모두 script.js에 추가되었습니다.
$script([
'bower_components/angular/angular.js',
'bower_components/angular-route/angular-route.js',
'js/app.js',
'js/controllers/first-ctrl.js',
'js/controllers/second-ctrl.js',
], function() {
angular.bootstrap(document, ['myApp']);
});
나는 응용 프로그램을 실행하면
는 때때로 작동하고, 가끔 오류를 얻을 :
Uncaught Error: [$injector:nomod] http://errors.angularjs.org/1.2.20/ $injector/nomod?p0=myApp.controllers
Error: [ng:areq] Argument 'FirstCtrl' is not a function, got undefined
참고. 간결함을 위해 나는 routeprovider를 생략했지만 FirstCtrl을 먼저 사용하여 경로로갑니다. SecondCtrl을 사용하여 경로를 다시 지정하면 비슷한 문제가 발생합니다.
너무 많은 각도의 씨앗으로 변경했다고 생각하지 않습니다. 컨트롤러를 추가 할 때 제대로 작동하는지 궁금합니다.
확인'FirstCtrl' 올바른 당신됩니다. Controller ('FirstCtrl', function ($ scope) {}); 또한 로더가 비동기임을 유의하십시오. 따라서 앱 초기화 전에 컨트롤러를로드하는 경우가 있습니다. – akn
@akn 그 이유는 각도 로더가 거기에 있다고 생각했기 때문입니다. 그래서 scriptjs는 임의의 순서로 각도 파일을로드 할 수 있습니다. – Steve
@Steve 예, 예외는 있지만 모듈 선언 'angular.module ('myApp.controllers ', [])는 모듈 인스턴스를 다시 가져 오기 전에 실행해야합니다. '. – runTarm