Zaten önyüklenmiş bir açısal modüle geç bağımlılık enjekte etmenin bir yolu var mı? Demek istediğim şu:
Site genelinde açısal bir uygulamam olduğunu varsayalım:
// in app.js
var App = angular.module("App", []);
Ve her sayfada:
<html ng-app="App">
Daha sonra, mevcut sayfanın ihtiyaçlarına göre mantık eklemek için uygulamayı yeniden açıyorum:
// in reports.js
var App = angular.module("App")
App.controller("ReportsController", ['$scope', function($scope) {
// .. reports controller code
}])
Şimdi, (gibi mantık bu talebe bit bu bir de kendi bağımlılıkları gerektirir ki ngTouch
, ngAnimate
, ngResource
, vs). Bunları temel uygulamaya nasıl ekleyebilirim? Bu işe yaramıyor gibi görünüyor:
// in reports.js
var App = angular.module("App", ['ui.event', 'ngResource']); // <-- raise error when App was already bootstrapped
Her şeyi önceden yapabileceğimin farkındayım, yani -
// in app.js
var App = angular.module("App", ['ui.event', 'ngResource', 'ngAnimate', ...]);
Veya her modülü kendi başına tanımlayın ve ardından her şeyi ana uygulamaya enjekte edin ( daha fazlası için buraya bakın ):
// 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'])
Ancak bu, Uygulamayı her seferinde mevcut sayfanın bağımlılıkları ile başlatmamı gerektirecektir.
Ben temel eklemeyi tercih app.js
her sayfada ve sadece her sayfasında (gerekli uzantıları tanıtmak reports.js
, home.js
ben eklemek önyükleme mantık her şey ya kaldır şey revize etmek zorunda kalmadan, vs.).
Uygulama zaten önyüklendiğinde bağımlılıklar oluşturmanın bir yolu var mı? Bunu yapmanın deyimsel yolu (veya yolları) nedir? İkinci çözüme yöneliyorum, ancak anlattığım yolun da yapılıp yapılamayacağını görmek istedim. Teşekkürler.