如何为新创建的$resource实例更改$save() http方法?
AngularJS: How can I change $save() http method for newly created $resource instances
我正在使用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})
相关文章:
- 在Javascript中对类的每个实例调用一个方法
- 为什么可以't我使用成员方法初始化一个实例
- 从实例方法调用实例方法
- 向模板实例变量传递调用方法调用的结果时出现异常
- 如何理解“当类实例化时,JavaScript静态方法也是不可调用的”
- Javascript:在对象实例方法上使用apply()方法失败
- 何时需要使用Object.assign()方法来复制对象的实例
- 我应该在原型上还是在新创建的实例上调用构造函数方法
- 我将如何创建一个带有私有变量的实例方法
- 用javascript在实例方法中实例化对象
- 使用lodash'扩展JS对象实例;s的extend方法会导致奇怪的结果
- 在canjs中,根据任何模型实例的存在,有条件地显示胡子模板部分的最常用方法是什么
- 附加到 DOMWindow 实例而不是自身实例的嵌套方法调用
- 绑定实例方法与包装匿名函数
- 有没有一种方法可以记录在javascript中创建了多少个实例
- 为什么't括号,用于链接内置JavaScript方法的此实例
- 使用对象方法实例化新的对象 JavaScript
- 方法实例Javascript的创建
- JavaScript OOP:在一个对象中同时运行两个方法实例
- 从方法实例访问这个变量