单个服务AngularJS的多个路由URL

zma*_*anc 14 rest angularjs

我有多个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' }
    });
}]);
Run Code Online (Sandbox Code Playgroud)

小智 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'}
    });
}]);
Run Code Online (Sandbox Code Playgroud)


zma*_*anc 18

我只需要把网址作为参数.

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"}},
    });
}]);
Run Code Online (Sandbox Code Playgroud)