我试图用角度资源发布标量值0,例如
myResource.save({}, 0, onSuccess, onError};
这为使用空体的POST尝试提供了HTTP 400错误。
查看角度源我发现我的帖子数据最终成为Resource的构造函数的参数,看起来像
function Resource(value){
shallowClearAndCopy(value || {}, this);
}
因此,似乎所有虚假值都将被空对象替换,因此无法发布。这是设计(然后:我错过了哪部分文档?)或错误?
答案 0 :(得分:1)
当使用实例方法而不是类方法时,最好说明$resource
的要点。从文档中获取this example:
var CreditCard = $resource('/user/:userId/card/:cardId',
{userId:123, cardId:'@id'}, {
charge: {method:'POST', params:{charge:true}}
});
...
var newCard = new CreditCard({number:'0123'});
newCard.name = "Mike Smith";
newCard.$save();
基本上newCard
只是一个表示模型的普通对象,但却丰富了一些功能。 $resource
提供了一个抽象层。它是Active Record Pattern的实现。
也就是说,如果你想发布单个标量值,那么你可能正在处理服务而不是资源。在这种情况下,$resource
(原文如此!)不是正确的选择。