我正在使用ui-router和html5网址模式。
根据下面的代码,每当我加载应用程序时,请在http://localhost:3000
处说明我被重定向到http://localhost:3000/home
(正如预期的那样)。
var app = angular.module('app', ['ui-router']);
app.config($stateProvider, $locationProvider, $urlRouterProvider, $httpProvider) {
$httpProvider.defaults.useXDomain = true;
delete $httpProvider.defaults.headers.common['X-Requested-With'];
$httpProvider.interceptors.push('AuthInterceptor');
// use HTML5 urls
$locationProvider
.html5Mode({
enabled: true,
requireBase: false
})
$urlRouterProvider.when('/', '/home');
// For any unmatched url
$urlRouterProvider.otherwise('/home');
}
第一个问题是将html5mode
更改为false
似乎没有任何效果。无论如何,html5mode将处于活动状态,使用经典模式的唯一方法是注释整个代码块:
$locationProvider
.html5Mode({
enabled: false,
requireBase: false
})
问:这里有什么问题?
第二个问题是经典模式处于活动状态(非html5模式),我就是http://localhost:3000/hello
,然后我会重定向到http://localhost:3000/hello#/home
。
问:为什么hello
部分没有被带走?
第三个(主要)问题是例如我已经处于home
状态或其他 ui-router 状态并且我手动更改了浏览器URL指向另一个状态(或home
状态本身)。在这种情况下,不是进入该状态,而是重新加载整个浏览器窗口,重新启动角度应用程序。
问:我在这里缺少什么?