이미 부트 스트랩 된 각도 모듈에 늦은 종속성을 주입하는 방법이 있습니까? 제가 의미하는 바는 다음과 같습니다.
다음과 같이 정의 된 사이트 전체 각도 앱이 있다고 가정합니다.
// in app.js
var App = angular.module("App", []);
그리고 모든 페이지에서 :
<html ng-app="App">
나중에 현재 페이지의 요구 사항에 따라 논리를 추가하기 위해 앱을 다시 엽니 다.
// in reports.js
var App = angular.module("App")
App.controller("ReportsController", ['$scope', function($scope) {
// .. reports controller code
}])
이제 (같은 논리의 그 주문형 비트의 하나는 자신의 의존성을 필요로 말을 ngTouch
, ngAnimate
, ngResource
, 등). 기본 앱에 어떻게 연결할 수 있습니까? 이것은 작동하지 않는 것 같습니다.
// in reports.js
var App = angular.module("App", ['ui.event', 'ngResource']); // <-- raise error when App was already bootstrapped
나는 내가 모든 것을 미리 할 수 있다는 것을 알고있다.
// in app.js
var App = angular.module("App", ['ui.event', 'ngResource', 'ngAnimate', ...]);
또는 모든 모듈을 자체적으로 정의한 다음 모든 것을 기본 앱에 삽입합니다 ( 자세한 내용은 여기 참조 ).
// in reports.js
angular.module("Reports", ['ui.event', 'ngResource'])
.controller("ReportsController", ['$scope', function($scope) {
// .. reports controller code
}])
// in home.js
angular.module("Home", ['ngAnimate'])
.controller("HomeController", ['$scope', '$http', function($scope, $http){
// ...
}])
// in app.js, loaded last into the page (different for every page that varies in dependencies)
var App = angular.module("App", ['Reports', 'Home'])
하지만 이렇게하려면 현재 페이지의 종속성으로 매번 앱을 초기화해야합니다.
나는 기본을 포함하는 것을 선호 app.js
모든 페이지를 간단하게 각 페이지 (에 필요한 확장을 도입 reports.js
, home.js
는 I 추가 부트 스트랩 로직마다 또는 제거 뭔가를 수정하지 않고, 등).
앱이 이미 부트 스트랩되었을 때 종속성을 도입하는 방법이 있습니까? 이를 수행하는 관용적 방법 (또는 방법)은 무엇입니까? 나는 후자의 해결책에 기대고 있지만 내가 설명한 방식이 또한 수행 될 수 있는지보고 싶었다. 감사.