如何在角度路线中传递查询字符串?

问题描述:

我正在使用 AngularJS 路由,并试图了解如何使用查询字符串(例如,url.com?key=value).Angular 不理解包含同名键值对的路由 albums:

I am working with AngularJS routes, and am trying to see how to work with query strings (for example, url.com?key=value). Angular doesn't understand the route which contains key-value pair for the same name albums:

angular.module('myApp', ['myApp.directives', 'myApp.services']).config(
        ['$routeProvider', function($routeProvider) {
            $routeProvider.
            when('/albums', {templateUrl: 'albums.html', controller: albumsCtrl}).
            when('/albums?:album_id', {templateUrl: 'album_images.html', controller: albumsCtrl}).
            otherwise({redirectTo: '/home'});
        }],
        ['$locationProvider', function($locationProvider) {
            $locationProvider.html5Mode = true;
        }]
    );

我认为路由不适用于查询字符串.代替 url.com?key=value,你可以使用更 RESTful 的 URL,比如 url.com/key/value? 然后你可以定义你的路由如下:>

I don't think routes work with query strings. Instead of url.com?key=value can you use a more RESTful URL like url.com/key/value? Then you would define your routes as follows:

.when('/albums', ...)
.when('/albums/id/:album_id', ...)

也许

.when('/albums', ...)
.when('/albums/:album_id', ...)