2017-02-15 68 views
0

我有這樣的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 沒有編碼字符,並且此時視圖被正確更改。

有什麼想法?

回答

1

在你的配置做到這一點,

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

並嘗試使用NG-的href

​​

OR

中只需添加一個!#後HREF

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

似乎並不奏效 –

+0

是否使用角1.6? –

0

您需要使用瀏覽器級別的API和對象窗口,或者您可以在控制器中注入$ window參考。

  • window.location.href="http://www.google.com";
  • ​​
+0

如果我解決了你的問題,請接受答案。 –