Angular $ routeProvider没有哈希(#)

时间:2016-09-12 14:43:52

标签: javascript angularjs route-provider

我的角度应用中有一个$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的网址没有开头的哈希。如何修改它以支持两个网址?

2 个答案:

答案 0 :(得分:5)

如果有任何问题,请阅读官方angularjs文档中有关html5Mode的更多信息。

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

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

});

答案 1 :(得分: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'  
 })  
 }]);