Несколько URL-адресов маршрутизации для одного сервиса AngularJS
У меня есть несколько путей URL, которые я хотел бы сопоставить с одним ресурсом. Однако я не уверен, как изменить URL-адрес на основе вызываемой функции. Например: dest mapping для запроса будет /allProducts, однако уничтожить будет что-то в строках /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' }
});
}]);
Ответы
Ответ 1
Для каждого действия вы можете переопределить аргумент 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'}
});
}]);
Ответ 2
Мне просто нужно было ввести 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"}},
});
}]);