【问题标题】:AngularJS 1.4.8 $locationProvider.html5Mode does not help to remove hashAngularJS 1.4.8 $locationProvider.html5Mode 无助于删除哈希
【发布时间】:2016-12-18 12:12:24
【问题描述】:

我正在使用 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">

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

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

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

【问题讨论】:

    标签: javascript angularjs routing friendly-url angular-route-segment


    【解决方案1】:

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

    href="/alphabet"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-11-15
      • 1970-01-01
      • 2016-08-22
      • 1970-01-01
      • 2018-07-13
      • 2021-01-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多