s ist möglich, das href-Attribut eines Basis-Tags in AngularJs zu setze
Ich möchte das @ setzhref
Attributwert vonbase
tag basierend auf einem konstanten Wert. Dazu habe ich das @ deklariebase
Attribut imhead
Element wie folgt:
<head>
<base ng-href="{{baseUrl}}">
</head>
und ich setze dasbaseUrl
Wert mit diesem Code-Snippet:
app.run(["$rootScope","env", function($rootScope, env){
$rootScope.baseUrl = env.baseUrl;
}]);
woenv
ist die Winkelkonstante.
DaslocationProvider
ist folgendermaßen konfiguriert:
.config(function ($locationProvider) {
$locationProvider.html5Mode(true);
})
Wenn ich es starte, sehe ich, dass der Wert richtig eingestellt ist:
<base ng-href="/" href="/">
aber in der Konsole bekomme ich diesen Fehler:
Error: [$location:nobase] $location in HTML5 mode requires a <base> tag to be present!
http://errors.angularjs.org/1.3.14/$location/nobase
at REGEX_STRING_REGEXP (angular.js:63)
at $LocationProvider.$get (angular.js:11293)
at Object.invoke (angular.js:4185)
at angular.js:4003
at getService (angular.js:4144)
at Object.invoke (angular.js:4176)
at angular.js:4003
at getService (angular.js:4144)
at Object.invoke (angular.js:4176)
at angular.js:6485
Wenn ich das href-Attribut direkt ohne ngHref setze:
<base href="{{baseUrl}}">
Ich erhalte diesen Fehler:
Error: Failed to execute 'replaceState' on 'History': A history state object with URL 'http://items/' cannot be created in a document with origin 'http://localhost:9000'.
at Error (native)
at Browser.self.url (http://localhost:9000/bower_components/angular/angular.js:5044:56)
at setBrowserUrlWithFallback (http://localhost:9000/bower_components/angular/angular.js:11313:18)
at http://localhost:9000/bower_components/angular/angular.js:11435:15
at Scope.$get.Scope.$eval (http://localhost:9000/bower_components/angular/angular.js:14401:28)
at Scope.$get.Scope.$digest (http://localhost:9000/bower_components/angular/angular.js:14217:31)
at Scope.$get.Scope.$apply (http://localhost:9000/bower_components/angular/angular.js:14506:24)
at bootstrapApply (http://localhost:9000/bower_components/angular/angular.js:1448:15)
at Object.invoke (http://localhost:9000/bower_components/angular/angular.js:4185:17)
at doBootstrap (http://localhost:9000/bower_components/angular/angular.js:1446:14)
Woitems
ist der Standard-Routing-Pfad:
.otherwise({
redirectTo: 'items'
});