Ich muss Skript in meiner index.html
Seite abhängig von der Anwendungsversion dynamisch hinzufügen. Ich habe einen Controller, der App-Version zurückkehrt und versucht, diese mit AngularJS zu tun:Erhalte den Skriptspeicherort vom Server, bevor eckig geladen wird
var resourceLoader = angular.module('MyTabs', []);
resourceLoader.controller('ResourceLoaderController', ['$scope', '$http', function ($scope, $http) {
$scope.getVersion = function() {
$http.get('/version/get').then(function (response) {
$scope.version = response.data;
var link = document.createElement("link");
link.setAttribute("type", "text/css");
link.setAttribute("rel", "stylesheet");
link.setAttribute("href", '/r/' + $scope.version +'/css/app.css');
document.getElementsByTagName("head")[0].appendChild(link);
var script = document.createElement("script");
script.setAttribute("type", "text/javascript");
script.setAttribute("src", '/r/' + $scope.version +'/js/app.js');
document.getElementsByTagName("head")[0].appendChild(script);
});
};
$scope.getVersion();
}]);
Es funktioniert, aber es gibt Winkel Controller in app.js
, und ich erhalte eine Fehlermeldung in Runtime, die AuthController
, verwendet in index.html
, nicht definiert ist.
Gibt es eine Möglichkeit, die Anwendungsversion vom Server abzurufen und Skript einzuschließen, bevor angularjs startet, um die Webseite zu verarbeiten?
Was meinst du mit Anwendungsversion? Von eckigen? –
upvote für beide Fragen, weil Sie [vorherige] (http://stackoverflow.com/questions/34433750/get-script-location-from-server) nicht geändert haben, wenn das nächste Problem gefunden wurde. –
Anwendungsversion ist eine Zahl, die "/ version/get" zurückgibt. Angular - is js framework (https://angularjs.org/) – Kirill