AngularJS路由在手动刷新时中断

时间:2013-08-11 11:02:27

标签: angularjs angularjs-routing

在config方法中,我有一些路由定义如下:

$locationProvider.html5Mode(true);

$routeProvider.when('/', {
  ...
});

$routeProvider.when('/front', {
  ...
});

$routeProvider.when('/user/account', {
  ...
});

使用<a href="">代码浏览应用时,一切正常。但是,当我转到/user/account并手动刷新浏览器时,它会弹出路由/account并将我重定向到/user,因为没有定义路由,所以在此过程中会中断渲染/user

我注意到,当我将路由配置为/account时,这不会发生,但这并不能解决真正的问题。所以我设置了以下全能(在上面的路线下方)来记录发生的事情:

$routeProvider.otherwise({
  redirectTo: function() {
    console.log('bumped', arguments);

    return '/';
  }
});

并看到它试图匹配/account而不是/user/account。这是怎么回事?

我在Angular 1.1.5上。服务器在所有请求(适用于HTML5模式)上适当地返回index.html,因此它看起来像是客户端问题。

如何正确配置此路线?

修改

原来这是1.1.5核心中的一个错误。

https://github.com/angular/angular.js/issues/2799

打补丁

https://github.com/IgorMinar/angular.js/commit/2bc62ce98f893377bfd76ae211c8af027bb74c1d

1 个答案:

答案 0 :(得分:2)

使用解决此问题的ui-router结束。