yeniden açın ve zaten önyüklenen bir uygulama bağımlılıkları Ekle
Bir şekilde zaten önyüklenen açısal modülü için geç bir bağımlılık enjekte var mı? Demek istediğim şey şu:
Site-geniş açılı bir uygulamam var ki, olarak tanımlanır:
// in app.js
var App = angular.module("App", []);
Ve her sayfa:
<html ng-app="App">
Daha sonra, mantık eklemek için uygulamayı yeniden açıyorum Geçerli sayfayı ihtiyaçlarına göre:
// in reports.js
var App = angular.module("App")
App.controller("ReportsController", ['$scope', function($scope) {
// .. reports controller code
}])
Şimdi, isteğe bağlı mantık bit bir tane de kendi bağımlılıklar (*11, *, ngResource
, **12 vb gibi) gerektirir ki. Nasıl temel App bunları ekleyebilir miyim? Bu çalışmıyor:
// in reports.js
var App = angular.module("App", ['ui.event', 'ngResource']); // <-- raise error when App was already bootstrapped
Önceden her şeyi yapabileceğimi biliyorum ben.e -
// in app.js
var App = angular.module("App", ['ui.event', 'ngResource', 'ngAnimate', ...]);
Ya da kendi başına her modül tanımlamak ve ana app içine her şeyi (see here for more) enjekte sonra:
// 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'])
Ama bu Uygulama her zaman geçerli sayfanın bağımlılıkları ile başlatmak gerekir.
Ben tercih için vardır temel app.js
her sayfa ve sadece tanıtmak gerekli uzantıları için her sayfa (reports.js
, home.js
, vs.), kalmadan gözden geçiriniz önyükleme mantık her ne eklemek veya kaldırmak bir şey.
Bir şekilde Uygulaması zaten önyüklenen olduğunda bağımlılıkları tanıtmak var mı? Bunu yapmak için çevirebilen bir yol (veya yolu) olarak kabul edilir? İkinci çözüm doğru eğilerek değilim, ama eğer tarif ettiğim şekilde de yapılabilir diye bakmak istedim. teşekkürler.
CEVAP
Bu şekilde çözdüm:
uygulamayı yeniden referans:
var app = angular.module('app');
sonra itme gereksinimleri diziye yeni gereksinimleri:
app.requires.push('newDependency');
Nasıl bir uygulama yeniden'bağıml...
Nasıl Eğer uygulama zaten arka planda ...
Android Uygulama içi Faturalandırma ha...
Açın kendi başka bir uygulama () niyet...
Kod değişiklikleri Sails.js bir uygula...