2013-09-20 11 views
9

I nie wydają się rysunek to -Restangular - Get obiekt w/id, edycji obiektu, uaktualnienia obiektu

chcę zrobić coś takiego:

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

Ale to nie działa - content nie posiada put funkcji, i co ciekawe, nie ma name, albo (jest to, że ponieważ jest to „obietnica”?)

teraz, Restangular docs opisują aktualizację obiektu, ale ty pobierz ten obiekt jako część kolekcji:

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

To działa. Ale! Nie tylko pobrałem całą listę, ale nie wiem, jak łatwo pobrać moją zawartość za pomocą jej identyfikatora; coś Restangular.all("contents").getList().find(2)

customPUT(..) wydaje się następnego Najprościej:

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

Tylko wtedy, gdy serwer odbiera go Rails, params["content"] == {id: 2} - wydaje się, że coś po stronie klienta jest depcząc tę ​​wartość. (Ponownie, zauważ, nie ma pola name). Teraz mogę obejść go po prostu robi coś takiego:

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

ale to naprawdę wydaje się, że jestem po prostu brakuje, jak powinniśmy to zrobić.

Odpowiedz

14

Dobra, znalazłem go, dzięki 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

zrobiłem to samo i wciąż otrzymuję błąd „nie znaleziono obiektu” Kiedy wywołać funkcję „postawić”. – Asqan

+0

Dzieje się tak dlatego, ponieważ obietnice Restangular i sposób w jaki wartości są używane bezpośrednio w zmienionych szablonach: https://github.com/mgonto/restangular#element-methods –

Powiązane problemy