2016-04-18 5 views
1

私は、URLでこれらのparamsを渡すにはどうすればよい。このパターン api/v1/album/:albumId/song/:songId/峠サブのparams URLでhttp.get AngularJS

のURLから取得する必要があります。

私は
params: { albumId: 2, songId: 4 }

paramsを使用してみましたが、GET呼び出しではなく、これは文字列の連結を使用せずに行うことができますどのように api/v1/album/2/song/4/

api/v1/album/:albumId/song/:songId/?albumId=2&songId=4 に作られたのか?

+0

'$ http'の代わりに' $ resource'を使うことを考えてください。 '$ resource'はあなたのURLパターンを補間する方法を知っていますが、' $ http'はそうではありません。 – Duncan

+0

うん、私はその方向で働き始めた。ありがとう – Saral

答えて

1

あなたは$resourceは、この作業を簡単にすることができRESTfulサービス、使用している場合:ここ

詳細情報:https://docs.angularjs.org/api/ngResource/service/が$リソース

例コード:

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 
}); 

をより多くのオプションがありますによって異なりあなたの要件に。これがあなたを助けることを願ってください:)

+0

ありがとうDavid Tao – Saral

0

Params: { .. }は、あなたのケースで起こったクエリーストリングとしてURLに連結されています。たとえば、パラメータ値を含むURLを作成します。

var url = 'api/v1/album/1/song/2'; 
$http.get(url).then(function(){ .... }); 
+0

'albumId'と' songId'の値はユーザーの入力に依存しているので、文字列の連結は安全なオプションですか?文字列連結を使用する方法とは別に何か方法はありますか? – Saral

+0

Paramsのアプローチと私が投稿したアプローチの間に違いはありません。それは、あなたが安全であることを望むなら、まだgetを呼び出す前にIDを検証することです。 –

関連する問題