在url http.get AngularJS中传递子参数

在url http.get AngularJS中传递子参数,angularjs,url,Angularjs,Url,我需要从这个模式的url获取 api/v1/album/:albumId/song/:songId/ 如何在url中传递这些参数 我尝试在 参数:{ 专辑编号:2, 宋编号:4 } 但是GET调用是对api/v1/album/:albumId/song/:songId/?albumId=2&songId=4进行的 而不是 api/v1/album/2/song/4/ 如何在不使用字符串连接的情况下实现这一点?参数:{..}在url上连接为querystring,这在您的案例中发生。只需构造包含参

我需要从这个模式的url获取
api/v1/album/:albumId/song/:songId/

如何在url中传递这些参数

我尝试在
参数:{
专辑编号:2,
宋编号:4
}

但是GET调用是对api/v1/album/:albumId/song/:songId/?albumId=2&songId=4进行的 而不是
api/v1/album/2/song/4/


如何在不使用字符串连接的情况下实现这一点?

参数:{..}
在url上连接为querystring,这在您的案例中发生。只需构造包含参数值的url,例如

var url = 'api/v1/album/1/song/2';
$http.get(url).then(function(){ .... });
如果您使用服务,
$resource
可以简化此工作:

更多信息请点击此处:$resource

示例代码:

var Song = $resource('/api/v1/album/:albumId/song/:songId/',
                      {albumId: '@albumId', songId: '@songId'});

Song.get({albumId: 2, songId: 4}, function(song) {
    //returned song object

});

//or chaining with promise object
Song.get({albumId: 2, songId: 4})
    .$promise.then(function(song){
    //success handler
    $scope.selectedSong = song;
}, function() {
    //failure handler
});

有更多的选择取决于您的要求。希望这能对您有所帮助:)

因为
albumId
songId
的值取决于用户的输入,所以使用字符串连接是安全的选择吗?除了使用字符串连接之外,有没有其他方法?PARAMS方法与我所发布的方法没有区别,它仍然从用户那里获得输入,如果您希望它被保护,那么首先验证在调用get之前的ID。考虑使用<代码> $Reals<代码>,而不是<代码> $HTP<<代码>。code>$resource知道如何插入URL模式,但
$http
不知道。是的,我开始朝这个方向努力。谢谢