2013-09-20 12 views
9

मैं इस यह पता लगाने की प्रतीत नहीं कर सकते -Restangular - वस्तु w/आईडी, संपादित वस्तु, अद्यतन वस्तु प्राप्त

मैं की तरह कुछ करना चाहता हूँ:

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() 

और यह काम करता है। परंतु! न केवल मैंने पूरी सूची प्राप्त की है, मैं यह नहीं समझ सकता कि इसकी आईडी को आसानी से कैसे प्राप्त किया जाए; जैसे Restangular.all("contents").getList().find(2)

customPUT(..) कुछ अगला सर्वोत्तम नंबर की तरह लगता है:

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

केवल जब रेल सर्वर इसे प्राप्त करता है, params["content"] == {id: 2} - यह क्लाइंट की तरफ कुछ की तरह लगता है कि मूल्य stomping है। (फिर, नोट, 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

ऐसा इसलिए है क्योंकि अस्थायी वादे और रास्ते मूल्यों का उपयोग सीधे टेम्पलेट्स में किया जाता है: https://github.com/mgonto/restangular#element-methods –

संबंधित मुद्दे