0

我正在使用 AngularJS 1.4.8。正如教程中所说,我创建了路由规则:

alphApp.config(['$routeProvider', '$locationProvider', function ($routeProvider, $locationProvider) {
    $routeProvider
            .when('/', {
                templateUrl: 'pages/home.html',
                controller: 'mainCtrl'
            })
            .when('/alphabet', {
                templateUrl: 'pages/alphabet.html',
                controller: 'alhabetController'
            })
            .otherwise({
                redirectTo: '/'
            });

    $locationProvider.html5Mode({
        enabled: true,
        requireBase: false
    });

}]);

但是当我按下链接时

<a href="#alphabet">

地址栏显示 域/#alphabet并且内容保持不变,直到我更新页面。页面更新后 url 变为具有正确内容的域/字母。如果我删除这部分:

$locationProvider.html5Mode({
    enabled: true,
    requireBase: false
});

url 看起来像domain/#/alphabet但内容会正确更改。这个问题可以通过将 angular 降级到 1.2.25 来解决,但是它会导致 get-params 出现问题,那么有没有办法在不降级 angular 的情况下拥有漂亮的 url?

4

1 回答 1

0

您的 href 告诉浏览器转到 oldpath/#alphabet、oldpath/alphabet。您需要将您的 href 更改为:

href="/alphabet"
于 2016-08-11T16:54:24.400 回答