¿Es posible establecer el atributo href de una etiqueta base en AngularJs?
Quiero configurar elhref
valor de atributo debase
etiqueta basada en un valor constante. Para hacerlo, he declarado elbase
atributo en elhead
elemento de la siguiente manera:
<head>
<base ng-href="{{baseUrl}}">
</head>
y puse elbaseUrl
valor con este fragmento de código:
app.run(["$rootScope","env", function($rootScope, env){
$rootScope.baseUrl = env.baseUrl;
}]);
dóndeenv
es la constante angular
loslocationProvider
se configura de esta manera:
.config(function ($locationProvider) {
$locationProvider.html5Mode(true);
})
Cuando lo ejecuto veo el valor configurado correctamente:
<base ng-href="/" href="/">
pero en la consola me sale este error:
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
Si configuro el atributo href directamente sin ngHref:
<base href="{{baseUrl}}">
Me sale este error:
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)
Dóndeitems
es la ruta de enrutamiento predeterminada:
.otherwise({
redirectTo: 'items'
});