Problemas com $ locationProvider.html5Mode (true)
lidando com alguns problemas de $ locationProvider nos quais estou preso. Eu tenho uma página de página única simples. Mas estou recebendo o seguinte erro:
TypeError: Cannot read property 'replace' of undefined
at trimEmptyHash (angular.js:10551)
at Object.$locationWatch (angular.js:11399)
at Scope.$get.Scope.$digest (angular.js:14217)
at Scope.$get.Scope.$apply (angular.js:14488)
at bootstrapApply (angular.js:1449)
at Object.invoke (angular.js:4182)
at doBootstrap (angular.js:1447)
at bootstrap (angular.js:1467)
at angularInit (angular.js:1361)
at HTMLDocument.<anonymous> (angular.js:26065)
Meu arquivo app.js é bem simples ...
var app = angular.module('app',
[
'ui.router'
]
);
app.config([
'$stateProvider',
'$httpProvider',
'$locationProvider',
'$urlRouterProvider',
function ($stateProvider, $httpProvider, $locationProvider, $urlRouterProvider) {
$locationProvider.hashPrefix('!');
$locationProvider.html5Mode(true);
$stateProvider
.state('home',
{
url: '/',
views: {
'aboutView':
{
template: function (params) {
console.log("home");
return 'home';
}
}
}
})
.state('about',
{
url: '/about',
views: {
'aboutView':
{
template: function (params) {
console.log('about')
return 'about';
}
}
}
})
;
}
]);
Eu tenho o<base href="http://localhost/apps/uiv8/" />
definido no meu arquivo index.html. Então, quando eu comento o código $ locationProvider, tudo funciona bem no modo #. Eu posso acessar / # / about etc. sem problemas. Assim que eu colocar as peças $ locationProvider de volta, nada.
Um pouco mais sobre o meu ambiente .... Temos o MVC do asp.net aqui, e o route.config está fazendo um {* url} para redirecionar tudo para a rota padrão, e eu até cheguei até modificar o IIS com url reescreve para enviar para o padrão, mas ainda recebo a análise de erro acima.
Então, alguém tem alguma idéia do que está acontecendo?
Obrigado Nick