angularjs - 配置中的 Angular 别名路由无需重定向

标签 angularjs route-provider

我可能只是错过了一些简单的东西,但我想为我的路线添加别名。我正在尝试将路线/hello_world 转发到/posttemplate 的现有路线。我希望能够像这样为我的路由添加别名,以便为用户提供易于记住的方式来访问动态链接......就像博客中的永久链接一样。另外,这是一个单独的问题,有谁知道有一种好方法可以在 json 文件或 xml 中定义所有这些路由,或者在我添加许多路由时保持干净的东西吗?

application.config(['$routeProvider', '$locationProvider',  function AppConfig($routeProvider, $locationProvider, $routeParams) {


 $locationProvider.html5Mode(true).hashPrefix('!');

$routeProvider.when("/dashboard", {
    controller: 'controllers.DashboardController',
    templateUrl: 'templates/dashboard.html'

}).when("/wishlist", {
    controller: 'controllers.WishlistController',
    templateUrl: 'templates/wishlist.html'
}).when("/login", {
    controller: 'controllers.LoginController',
    templateUrl: 'templates/login.html'
}).when("/posttemplate", {
    controller: 'controllers.PostTemplateController',
    templateUrl: 'templates/posttemplate.html'
}).when("/hello_world", {
    controller: 'DynamicRouteController',
    templateUrl: function(params){ return '/posttemplate?id=1' }
}).otherwise({
    controller: 'controllers.HomeController',
    templateUrl: 'templates/home.html'

});


}]);

最佳答案

我认为您应该首先仔细规划您的 URL 模式。将 /{{post_name}}/posttemplate 放在同一级别似乎不是一个好主意。

也许您可以尝试为所有单独的文章添加路径前缀,例如 /post/:post_name。 然后你可以将其添加到你的路由器配置中:

.when("/post/:post_name", {
    controller: 'DynamicRouteController',
    templateUrl: 'templates/posttemplate.html'
}

然后在 DynamicRouteController 中,从 $routeParams 读取 post_name 并将其映射到您的帖子 ID。您可以在您的帖子中添加类似于 unique_name 字段的内容,其中存储您希望从中访问的 URL (/post/post_name)。

或者,如果您确实愿意,也可以将它们放在同一级别。只需确保“catch-all”项位于路由器配置的末尾即可。

而且,如果您愿意,您绝对可以将路由器配置保存到 JSON 文件中。只需迭代配置项数组并将它们传递给 when()

关于angularjs - 配置中的 Angular 别名路由无需重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23560289/

相关文章:

twitter-bootstrap - 如何以正确的方式在 angular.js 中实现 scrollspy?

angularjs - ion-nav-bar 中的元素无法点击,无法正常工作

javascript - 如何在同一个项目中同时使用 JWPlayer 6 和 JWPlayer 7?

angularjs - $routeProvider 中的多个 url

Symfony2 使用 assetic 和 Angular HTML5 路由

javascript - 使用 Jasmine 对过滤器组件进行单元测试

javascript - Angular-JWT 授权 header 异常

javascript - Angular Routing,浏览器 URL 未按预期更新

javascript - AngularJS 重定向到另一个 ng-app 模块

javascript - 不执行 routeprovider 的 Angular 更改 url