14

1 つのリソースにマップしたい複数の URL パスがあります。ただし、呼び出された関数に基づいて URL を変更する方法がわかりません。たとえば、クエリの :dest マッピングは /allProducts になりますが、destroy は /delete/:id の行に沿ったものになります。

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' }
    });
}]);
4

2 に答える 2

25

アクションごとに、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'}
    });
}]);
于 2014-12-24T08:26:26.130 に答える
18

URLをパラメータとして入れる必要がありました。

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"}},
    });
}]);
于 2013-03-01T15:48:51.733 に答える