9

我似乎无法弄清楚 -

我想做类似的事情:

content = Restangular.one('contents', 2).get()
content.name = "Chunky Bacon"
content.put()

但这不起作用 -content没有put功能,有趣的是,它也没有name, (是因为它是“承诺”吗?)

现在,Restangular 文档确实描述了更新对象,但是您将该对象作为集合的一部分:

content_id2 = Restangular.all("contents").getList()[2]
content_id2.name = "Chunky Bacon"
content_id2.put()

这有效。但!我不仅获取了整个列表,而且不知道如何通过它的 ID 轻松获取我的内容;就像是Restangular.all("contents").getList().find(2)

customPUT(..)似乎是下一个最好的选择:

Restangular.one("contents", 2).customPUT("", {"content" : {"name" : "Chunky Bacon"} } )

只有当 Rails 服务器接收到它时,params["content"] == {id: 2}- 似乎客户端的某些东西正在践踏该值。(再次注意,没有name字段)。现在,我可以简单地通过执行以下操作来解决它:

Restangular.one("contents", 2).customPUT("", {"content_data" : {"name" : "Chunky Bacon"} )

但似乎我只是想念你应该如何做到这一点。

4

1 回答 1

14

好的,找到了,感谢这个问题

#In the beginning:
Restangular.one("content", 2).get().then(function(c){
  $scope.content = c
})

#Elsewhere:
$scope.content.name = "Chunky Bacon"

#Finally:
$scope.content.put()
于 2013-09-20T23:51:36.207 回答