2013-03-01 17 views
13

単一のリソースにマップしたい複数のURLパスがあります。しかし、私はどのように関数を呼び出すに基づいてURLを変更するか分からない。例:クエリのDESTマッピングはallProductsは、しかし、破壊/削除/の線に沿って何かだろう/でしょう:私はちょうどのparamとしてでURLを置くために必要な単一サービスの複数のルーティングURL AngularJS

service.factory('ProductsRest', ['$resource', function ($resource) { 
    return $resource('service/products/:dest', {}, { 
     query: {method: 'GET', params: {}, isArray: true }, 
     save: {method: 'POST'}, 
     show: { method: 'GET'}, 
     edit: { method: 'GET'}, 
     update: { method: 'PUT'}, 
     destroy: { method: 'DELETE' } 
    }); 
}]); 

答えて

24

各アクションについて、url引数を無効にすることができます。 これは特にurl: {...}引数です。あなたの例では

service.factory('ProductsRest', ['$resource', function ($resource) { 
    return $resource('service/products/', {}, { 
     query: {method: 'GET', params: {}, isArray: true }, 
     save: {method: 'POST', url: 'service/products/modifyProduct'}, 
     update: { method: 'PUT', url: 'service/products/modifyProduct'} 
    }); 
}]); 
17

ID。

service.factory('ProductsRest', ['$resource', function ($resource) { 
    return $resource('service/products/:dest', {}, { 
     query: {method: 'GET', params: {dest:"allProducts"}, isArray: true }, 
     save: {method: 'POST', params: {dest:"modifyProduct"}}, 
     update: { method: 'POST', params: {dest:"modifyProduct"}}, 
    }); 
}]); 
+0

どのようにこれらのそれぞれを呼ぶのですか?あなたが単に保存を呼びたいと思ったとします。あなたはProductsRest.save()をしましたか? ? – user20358

+1

素晴らしいソリューションですが、mikemuellerソリューションを好むでしょう。 –

関連する問題