0

我想使用角度资源与我的 rails 后端交互,内置的 $resource 服务与 rails API 不完全兼容,比如默认不支持 PUT,我必须使用 PUT 方法添加自定义操作“更新”。

这种方法的问题是我必须为每个资源添加更新操作,以使角度资源与 Rails API 后端对齐。

这是一个好的方法吗?

我还发现了一个角度资源包装器angularjs-rails-resource,它提供了一个带有 PUT http 动词的更新方法,但它处理参数传递的方式似乎有点奇怪。例如,它用“未定义”键包装参数。

Parameters: {"undefined"=>{"username"=>"xxxx"}, "version"=>"1", "id"=>"88"}

那么,问题是将角度资源与 rails API 一起使用的最佳实践是什么?

4

3 回答 3

1

如果您不想要 restangular 的开销并且只想将更新方法添加到每个资源,您可以简单地将装饰器添加到 $resource 服务。

像这样的东西:

.config(function ($provide) {
    $provide.decorator('$resource', function ($delegate) {

        //Store the delegate, so we can access it later
        var resourceFactory = $delegate;

        //Add the actions that you want added to each Resource here
        var default_actions = {'update': {method: 'PUT'}};

        return function (url, paramDefaults, actions) {
            actions = angular.extend({}, default_actions, actions);
            return resourceFactory(url, paramDefaults, actions);
        };

    });
})
于 2014-04-17T17:00:53.993 回答
1

使用angular-rails-resource。它针对 Rails 理念进行了优化,这意味着您不必自己处理请求/响应格式。它还支持很多其他很酷的功能,比如嵌套资源、自动名称转换等......

于 2015-12-04T15:31:39.320 回答
0

看看restangular。这确实是与 rest api 交互的一个很好的解决方案。

于 2014-04-17T13:46:50.380 回答