2014-04-22 5 views
1

(사용 requireJS, AngularJS와, angularAMD) 내 main.js에서기능을 필요에 정의 (requireJS)

내가 가진 파일 :

require.config({ 
    baseUrl: "js", 
    paths: { 
     'angular': 'libs/angularjs/angular.min', 
     'angularAMD': 'libs/angularjs/angularAMD.min' 
    }, 
    shim: { 
     'angularAMD': ['angular'] 
    } 
}); 

define(['angularAMD'], function (angularAMD) { 
    var app = angular.module("app", []); 
    app.controller("testCtrl", function ($scope) { 
     $scope.message = "udało się!"; 
    }); 
    angularAMD.bootstrap(app); 
    return app; 
}); 

모든 것이 잘 작동합니다. 하지만 다른 파일에 설정 부분을 절단 할 때 내가 가진 오류 :

main.js :

require(['common'], function (common) { 
    define(['angularAMD'], function (angularAMD) { 
     var app = angular.module("app", []); 
     app.controller("testCtrl", function ($scope) { 
      $scope.message = "udało się!"; 
     }); 
     angularAMD.bootstrap(app); 
     return app; 
    }); 
}); 

common.js를

내가의 기능을 필요로 정의 사용할 수
require.config({ 
    baseUrl: "js", 
    paths: { 
     'angular': 'libs/angularjs/angular.min', 
     'angularAMD': 'libs/angularjs/angularAMD.min' 
    }, 
    shim: { 
     'angularAMD': ['angular'] 
    } 
}); 

? 공통 설정을 먼저 포함하고 정의를 사용하는 방법이 아니라면?

답변

2

main.js 파일은파일이 RequireJS를로드하거나 응용 프로그램의 기본 진입 점인 <script> 태그의 data-main 특성에 부여한다고 가정합니다.

require(['common'], function (common) { 
    require(['app']); 
}); 

을 그리고 당신의 코드가 쉽게로드 할 수있는 위치에 app.js 모듈 생성 :이에 main.js 변경이 모듈에서 생성 app의 값에 액세스해야

define(['angularAMD'], function (angularAMD) { 
    var app = angular.module("app", []); 
    app.controller("testCtrl", function ($scope) { 
     $scope.message = "udało się!"; 
    }); 
    angularAMD.bootstrap(app); 
    return app; 
}); 

무엇이든 할 수 app 모듈 만 있으면됩니다.

질문에있는 코드는 모듈을 정의하지만 비동기 적으로 수행합니다. define에 대한 호출이 발생할 때까지 RequireJS는 이미 main로드를 완료했습니다. 걱정되는 한, main가 완성됩니다. 정의 된 모듈에 어떤 이름을 붙여야합니까?

+0

하지만 각진 추측을 사용하고 있기 때문에 각형 앱을 사용하여 앱 모듈을 정의하고 싶습니다. 필요로 할 수 없습니다. – piernik

+0

답변을 수정했습니다. – Louis

+0

이것이 작동 할 수 있습니다. - 감사합니다. – piernik

관련 문제