我正在使用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})
无法正常工作
答案 0 :(得分:0)
您可以使用$ update来发出请求,请参阅以下内容:
app.factory("item", function ($resource)
{
return $resource(
"/api/item/:Id",
{ Id: "@Id" },
{
"update": { method: "PUT" }
}
);
});
之后
item.$update({id: some_id})