Подтвердить что ты не робот

Несколько 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' }
    });
}]);
4b9b3361

Ответ 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"}},
    });
}]);