一直在处理我坚持的一些$locationProvider问题.我有一个简单的单页面页面.但是我收到以下错误:
原文链接:https://www.f2er.com/angularjs/141738.htmlTypeError: 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)
我的app.js文件非常简单……
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'; } } } }) ; } ]);
我确实有< base href =“http:// localhost / apps / uiv8 /”/>在我的index.html文件中设置.因此,当我注释掉$locationProvider代码时,一切都在#模式下工作正常.我可以毫无问题地进入/#/ about等.一旦我把$locationProvider部件放回去,什么都没有.
关于我的环境的更多信息……我们在这里有asp.net的MVC,而route.config正在做一个{* url}来将所有内容重定向到默认路由,我甚至走得很远用url修改IIS重写发送到默认值,但我仍然得到上面的解析错误.
所以,任何人都有任何想法发生了什么?
谢谢,
缺口