如果我有资源,例如
var resource = Restangular.all('things');
我有json对象,我想发布到API
jsonObj = {
someVar: "x",
anotherVar: "y"
}
我可以简单地做
resource.post(jsonObj).then( ...etc... )
现在,如果我在客户端更新模型并想保存更改,为什么我不能这样做:
resource.put(thingId, updatedJsonObj)
我无法在互联网上绕过演示,因为他们似乎都需要先做一个获取请求才能进行投放?这似乎很奇怪。值得一提的是,我在SERVICE中使用Restangular,而不是在控制器或指令中。我的服务有一个变量allMyThings
,它是resource.getList()
的结果,我在应用程序的不同位置使用它
答案 0 :(得分:1)
实际上,如果您在getList()
返回的集合中使用了一个项目,则可以在其上使用.save()
,并调用PUT
方法。
angular.module('demo').controller('DemoCtrl', function (myList) {
// myList is populated by Restangular.all('...').getList();
var item = myList[0];
item.name = 'foo';
item.save() // this one did a PUT :)
.then(function (res) {
// ...
});
});
注意:
Restangular将使用id
属性作为PUT
,DELETE
等来电的ID。
如果要更改该行为,请在模块配置中使用:
RestangularProvider.setRestangularFields({
id: "_id"
});