Ich bekomme den obigen Fehler, wenn Sie versuchen, html5Mode
mit UI-Router zu verwenden. Kann mir jemand auf das hinweisen, was ich falsch mache?TypeError: Kann die Eigenschaft 'replace' von undefined nicht lesen
TypeError: Cannot read property 'replace' of undefined
at bd (angular.js:10555)
at Object.<anonymous> (angular.js:11403)
at l.$get.l.$digest (angular.js:14222)
at l.$get.l.$apply (angular.js:14493)
at angular.js:1449
at Object.e [as invoke] (angular.js:4182)
at d (angular.js:1447)
at sc (angular.js:1467)
at Jd (angular.js:1361)
at HTMLDocument.<anonymous> (angular.js:26086)
Das Segment in angular.js
ist:
10554 function trimEmptyHash(url) {
10555 return url.replace(/(#.+)|#$/, '$1');
10556 }
Die Routing-Datei:
(function(){
'use strict';
angular
.module('app')
.config(routes);
routes.$inject = ['$stateProvider', '$locationProvider'];
function routes($stateProvider, $locationProvider) {
// Configure app states
$stateProvider
.state('app', {
abstract: true,
templateUrl: 'modules/app/app.html',
controller: 'AppController'
})
.state('app.home', {
url: '/',
templateUrl: 'modules/home/index.html'
});
$locationProvider.html5Mode(true);
}
})();
ich die Basis-URL im HTML festgelegt haben:
<base href="/app/" />
http://stackoverflow.com/questions/28859276/locationprovider-html5modetrue-issues und http://stackoverflow.com/questions/21863670/case-sensitivity-with-angularjs-ui-router –
Diese Lösungen nicht scheinen zu arbeiten. Alle meine URLs sind sowieso in Kleinbuchstaben, daher bin ich mir nicht sicher, ob das möglich ist. – babbaggeii
Also 'URL' ist undefiniert.Schauen Sie sich die Stapelverfolgung an und sehen Sie, wer "trimEmptyHash" aufruft. Suchen Sie den Code, der ihn festlegen soll, und sehen Sie, warum er nicht definiert ist. –