2013-09-20 92 views
9

我似乎無法想出解決辦法 -Restangular - 獲取對象W/ID,編輯對象,更新對象

我想要做的事,如:

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"}) 

,但它真的好像我只是缺少你應該如何做到這一點。

回答

14

好了,找到了,感謝this question

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

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

#Finally: 
$scope.content.put() 
+0

我已經做了和我一樣仍然得到錯誤「未找到對象」當我調用函數「放」。 – Asqan

+0

這是因爲Restangular承諾和直接在模板中使用值的方式發生了變化:https://github.com/mgonto/restangular#element-methods –