14

我有多个要映射到单个资源的 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 回答