我正在尝试使用locationProvider从angular js的url路由中删除主题标签,但它给了我错误。
app.js
var eclassApp = angular.module('eclassApp', ['ngRoute', 'eclassControllers', ] ); eclassApp.config(['$routeProvider','$locationProvider', function ($routeProvider, $locationProvider){ $routeProvider. when('/',{ templateUrl: '/html/student-list.html', controller: 'StudentsListCtrl', }). when('/students/:studentId',{ templateUrl: '/html/student-details.html', controller: 'StudentDetailsCtrl', }).otherwise({ redirectTo: '/students' }); $locationProvider.htmlMode(true); }] );
错误:
Uncaught Error: [$injector:modulerr] http://errors.angularjs.org/1.3.13/$injector/modulerr?p0=eclassApp&p1=TypeE…oogleapis.com%2Fajax%2Flibs%2Fangularjs%2F1.3.13%2Fangular.min.js%3A17%3A1)
我想念什么吗?
编辑:用这样的选项对象调用html5Mode函数
$locationProvider.html5Mode({ enabled:true })
我收到以下错误(更改为角度满角以更好地解释错误,而不是缩小版本)
Error: [$location:nobase] $location in HTML5 mode requires a <base> tag to be present!
http://errors.angularjs.org/1.3.13/$location/nobase
您可以像这样使用$ locationProvider-
$locationProvider.html5Mode({ enabled: true, requireBase: false });
另外,您也可以在index.html中使用base标签(我想这是您的目标网页)
<head> <base href="/"> </head>
删除基本标签可能会在IE9之类的旧IE浏览器中造成一些副作用