$ routeProvider不重定向

时间:2017-02-15 07:49:55

标签: angularjs

我有这样的config()。

function config($httpProvider, $routeProvider) {

$httpProvider.interceptors.push('httpInterceptorService');

$routeProvider
  .when('/detail/:id', {
    controller: 'CourseDetailController',
    controllerAs: 'vm',
    templateUrl: 'templates/course-detail.html'
  })
.otherwise({
    redirectTo: '/'
  });
}

查看

<a class="course--module course--link" href="/#/detail/{{ course._id   }}">

点击课程时URL编码如下,似乎没有路由。

http://localhost:5000/#!/#%2Fdetail%2F57029ed4795118be119cc43d

我试过

  1. /#移除了href = "/#/detail/{{ course._id }}",但这次URL变为http://localhost:5000/detail/57029ed4795118be119cc43d,而没有选择角度路由器并提出服务器请求。

  2. 在地址栏URL中手动访问了 http://localhost:5000/#!/detail/F57029ed4795118be119cc43d 没有编码字符,这个时间视图正确更改。

  3. 任何想法?。

2 个答案:

答案 0 :(得分:1)

在配置中执行此操作,

function config($httpProvider, $routeProvider, $locationProvider) {
    $locationProvider.hashPrefix('');

尝试使用ng-href

<a class="course--module course--link" ng-href="/#/detail/{{ course._id   }}">

OR

只需在! href

后添加#即可
<a class="course--module course--link" ng-href="/#!/detail/{{ course._id   }}">

答案 1 :(得分:0)

您需要使用浏览器级API,使用对象窗口,或者您可以在控制器中注入$ window引用。

  • window.location.href="http://www.google.com";
  • $window.location.href="http://www.google.com";