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

AngularJS: How can I change $save() http method for newly created $resource instances

本文关键字:方法 实例 save http 新创建 创建 resource      更新时间:2023-09-26

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

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

所以我不能这样做:

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

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

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

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

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

item.$save({id: some_id})不工作

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

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

之后的

item.$update({id: some_id})