Hi Leute,
ich habe eine Webseite, auf der ich das Angular Framework zum Routing verwende. Funktioniert soweit einwandfrei.
Nun würde ich gerne für jede Seite, die durch Routing nachgeladen wird auch einzelne JS und CSS Dateien mitladen. Wie gehe ich dabei am besten vor?
Zurzeit sieht mein Aufbau so aus:
[CODE=JavaScript]
var hcpApp = angular.module(‚hcpApp‘, [‚ngRoute‘]);
hcpApp.config([‚$routeProvider‘, ‚$locationProvider‘, function($routeProvider, $locationProvider) {
$routeProvider
.when(‚/‘, {
title: ‚Startseite‘,
templateUrl: ‚pages/home.php‘,
script: ‚scripts/home.js‘,
css: ‚css/home.css‘,
id: 1,
sub_id: 0,
})
.when(‚/change_username‘, {
title: ‚Benutzername ändern‘,
templateUrl: ‚pages/change_username.html‘,
script: ‚scripts/change_username.js‘,
css: ‚css/change_username.css‘,
id: 2,
sub_id: 1
})
.when(‚/change_email‘, {
title: ‚E-Mail Adresse ändern‘,
templateUrl: ‚pages/change_email.html‘,
script: ‚scripts/change_email.js‘,
css: ‚css/change_email.css‘,
id: 2,
sub_id: 2
})
.when(‚/change_pw‘, {
title: ‚Passwort ändern‘,
templateUrl: ‚pages/change_pw.html‘,
script: ‚scripts/change_pw.js‘,
css: ‚css/change_pw.css‘,
id: 2,
sub_id: 3
})
.when(‚/additional_infos‘, {
title: ‚Sonstige Informationen‘,
templateUrl: ‚pages/additional_infos.html‘,
script: ‚scripts/additional_infos.js‘,
css: ‚css/additional_infos.css‘,
id: 2,
sub_id: 4
})
.when(‚/admin_cp/usermanagement‘, {
title: ‚Benutzerverwaltung‘,
templateUrl: ‚pages/usermanagement.php‘,
script: ‚scripts/usermanagement.js‘,
css: ‚css/usermanagement.css‘,
id: 3,
sub_id: 1
})
.when(‚/admin_cp/settings‘, {
title: ‚Allgemeine Einstellungen‘,
templateUrl: ‚pages/general_settings.php‘,
script: ‚scripts/general_settings.js‘,
css: ‚css/general_settings.css‘,
id: 3,
sub_id: 2
})
.otherwise({
redirectTo: ‚/‘
});
if(window.history && window.history.pushState){
$locationProvider.html5Mode(true);
}
}]);
hcpApp.run([‚$location‘, ‚$rootScope‘, function($location, $rootScope) {
$rootScope.$on(‚$routeChangeSuccess‘, function(event, current, previous) {
$rootScope.title = current.$$route.title;
$rootScope.script = current.$$route.script;
$rootScope.css = current.$$route.css;
});
}]);[/CODE]
Wie ihr seht, habe ich bereits die Pfade zu den jeweiligen CSS und JS Dateien angegeben. Mit dem unteren Teil des Codes kann ich dann die jeweiligen Werte in Variablen schreiben, welche ich dann mit ng-bind im Quelltext dynamisch übernehmen kann.
Nur funktioniert das bei mir auf diese Methode nicht:
<script type="text/javascript" ng-bind="'src=' + script"></script>
So fügt er logischerweise „src=scripts/.js“ zwischen ein.
Ich bekomme es aber auch nicht hin, dass das script zwischen src=" und " ausgegeben wird bzw. ist das überhaupt möglich? Und was ich auch noch bezweifle ist, dass das Script dann überhaupt geladen würde.
Hat jemand eine Idee wie ich mit AngularJS am besten seitenspezifische Scripts nachlade?
Danke schonmal im voraus.
LG
SpeedyX