2016-09-12 36 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' 
}) 
}]);