Restangular put requests ..如何以及为什么?

时间:2014-09-22 15:29:00

标签: angularjs restangular

如果我有资源,例如

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()的结果,我在应用程序的不同位置使用它

1 个答案:

答案 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) {
       // ...
    });

});

See it in the docs

注意:

Restangular将使用id属性作为PUTDELETE等来电的ID。 如果要更改该行为,请在模块配置中使用:

RestangularProvider.setRestangularFields({
  id: "_id"
});