仅使用一个 $resource 构建一个对象

Building one object with only one $resource

我正在使用 $resources 构建一个 fullrest 应用程序,我阅读了它,但没有找到任何答案。

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

Get Rings 运行良好,但我如何才能 "patchRing"?我的意思是我想为端点 PATCH: /rings/:slug 这可能吗?或者我需要另一个 $resource 吗(比如下一个)?

return $resource('/rings/:slug', { slug: '@slug'}, { [...]

编辑:我不想要这样的 "PATCH" /rings?slug=lorem 只是 /rings/lorem

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

这样的构建请求

尝试将参数放在 $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路径中。

在您的配置中试试这个

$resourceProvider.defaults.stripTrailingSlashes = true;

这不会以 /

结尾