AngularJS:如何为新创建的$ resource实例更改$ save()http方法

时间:2014-07-28 11:04:16

标签: javascript angularjs angular-resource

我正在使用AngularJS构建应用程序,并希望为我的应用程序使用REST方法。 这就是我决定使用ngResource的原因。

通常ngResource用于创建所有CRUD操作。在这种情况下,它工作顺利。 但在我的情况下,我需要使用ng-init从视图中检索数据(通常由ResourceClass.get(params)获取)。

所以我不能这样做:

Item = $resource('http://some_url/:id');
item = Item.get({id: some_id});

相反,如果我需要创建新项目或更新现有项目,我需要每次都创建$ resource的新实例。所以我的代码是这样的:

Item = $resource('http://some_url/:id');
item = new Item(some_data);

因此,当我使用item $。$ save()时,它会每次都创建POST请求,因为它不知道我不想存储项目但是更新现有项目。

问题是: 如果我可以告诉ngResource有时在$ save()操作上使用PUT?

item.$save({id: some_id})无法正常工作

1 个答案:

答案 0 :(得分:0)

您可以使用$ update来发出请求,请参阅以下内容:

app.factory("item", function ($resource)
    {
        return $resource(
            "/api/item/:Id",
            { Id: "@Id" },
            {
                "update": { method: "PUT" }

            }
       );
    });

之后

item.$update({id: some_id})