2016-09-12 98 views
0

我在角的應用程序有一個$routeProvider,對於不同的路徑,這裏是它的外觀:

$routeProvider 
    .when('/', { 
    templateUrl: 'views/main.html', 
    title: 'Main', 
    }) 
    .when('/howItWorks', { 
     templateUrl: 'views/hiw.html', 
     controller: 'HiwCtrl', 
     controllerAs: 'hiw', 
     title: 'How it works' 
    }) 
    ... 

在這種情況下,當我去/#howItWorks,它會加載HiwCtrl及其觀點。

現在我有一個網址,看起來像/users沒有散列在開始。我如何修改這個以支持這兩個url?

+1

僅基於角你的項目? – LkPark

+0

是的,它開始於'連接'節點的服務器,用grunt – Pablo

+1

目前我沒有發現任何使用角度提供的東西的簡單實現,問題是你的散列將被角度解析算法刪除,所以我們需要改變,但目前我不確定這是否可能,而不影響角度供應商。只有我現在在事件$ locationChangeStart之後纔會觸發路由解析。我會搜索更多,並會重播,如果會發現 – LkPark

回答

5

如果有任何問題,只需在官方的angularjs文檔中閱讀有關html5Mode的更多信息。

app.config(['$locationProvider',function($locationProvider) { 

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

}); 
+0

但不會修改所有網址?我只需要一個url就可以像這樣解析 – Pablo

+1

如果你需要特定的url,只需要在開始的時候添加一個hash,如下所示:.when('/#howItWorks' –

1

使用本

app.config([ '$locationProvider', '$routeProvider', 
    function ($locationProvider, $routeProvider) { 
    $locationProvider.html5Mode({ 
    enabled: true, 
    requireBase: false 
}).hashPrefix('!'); 

$routeProvider 
.when('/home', { // For Home Page 
    templateUrl: 'Home.html', 
    controller: 'HomeController' 
    })  
.otherwise({ // This is when any route not matched => error 
    controller: 'ErrorController' 
}) 
}]);