仅使用一个$资源构建一个对象

时间:2015-05-18 15:55:53

标签: angularjs angular-resource

我用$资源构建了一个饱满的应用程序,我读到了它,但我没有找到任何答案。

return $resource('/rings', {}, { 
            getRings: {
                method: 'GET',
                isArray: true
            },
            patchRing: {
                method: 'PATCH',
                params: {
                    slug: '@slug'
                }
            }
}

获取戒指是可以的,但我怎么能" patchRing"?我的意思是我想要端点PATCH:/ rings /:slug这可能吗?或者我是否需要另一个$资源(如下一个)?

return $resource('/rings/:slug', { slug: '@slug'}, { [...]
编辑:我不想要" PATCH"像这样/戒指?slug = lorem只是/ rings / lorem

编辑2:我的观点只是端点构造...因为$ resource正在请求/ rings?slug = lorem而不是像/ rings / lorem那样的构建请求

2 个答案:

答案 0 :(得分:1)

在配置中尝试此操作

$resourceProvider.defaults.stripTrailingSlashes = true;

这不会以/

结尾

答案 1 :(得分:0)

尝试将param放在$resource定义而不是PATCH方法中:

var Ring = $resource('/rings/:slug', {slug: '@slug'}, {
        getRings: {
            method: 'GET',
            isArray: true
        },
        patchRing: {
            method: 'PATCH',
        }
});

ring = Ring.patch({slug: 'lorem'}, function() { ... });

如果未传递slug参数,则不会将其添加到HTTP路径。