2013-03-03 11 views
7
// Set up the $resource 
$scope.Users = $resource("http://localhost/users/:id"); 

// Retrieve the user who has id=1 
$scope.user = $scope.Users.get({ id : 1 }); // returns existing user 

// Results 
{"created_at":"2013-03-03T06:32:30Z","id":1,"name":"testing","updated_at":"2013-03-03T06:32:30Z"} 

// Change this user's name 
$scope.user.name = "New name"; 

// Attempt to save the change 
$scope.user.$save(); 

// Results calls POST /users and not PUT /users/1 
{"created_at":"2013-03-03T23:25:03Z","id":2,"name":"New name","updated_at":"2013-03-03T23:25:03Z"} 

अद्यतन करने मुझे लगता है कि इस बदली हुई विशेषता के साथ करने के लिए/उपयोगकर्ताओं/1 पुट में परिणाम होगा उम्मीद करेंगे। लेकिन यह इसके बजाय POST/उपयोगकर्ताओं के लिए है और यह एक नया उपयोगकर्ता बनाता है (नए नाम के साथ एक नई आईडी के साथ)।

क्या ऐसा कुछ है जो मैं गलत कर रहा हूं?

AngularJS v1.0.5 

उत्तर

8

तुम सिर्फ, $ संसाधन बताने के लिए कि कैसे वह मार्ग पैरामीटर बाध्य करने के लिए है की जरूरत है ": आईडी" JSON वस्तु के साथ:

$scope.Users = $resource("http://localhost/users/:id",{id:'@id'}); 

यह काम करना चाहिए संबंध

+1

धन्यवाद, 9 0%, यह अद्यतन उपयोगकर्ता के साथ अब/उपयोगकर्ताओं/1 को पोस्ट करता है। लेकिन अब इसे पोस्ट के बजाय कैसे बनाना है? बहुत करीब। –

+0

मुझे लगता है कि यह डिजाइन द्वारा पोस्ट करें। मुझे एक नया संसाधन होने पर POST को "सेव" ओवरराइड करना होगा और जब यह किसी मौजूदा संसाधन के लिए अद्यतन होगा। पोस्ट के बजाय PUT के बारे में मेरे प्रश्न का उत्तर देने के लिए http://docs.angularjs.org/api/ngResource.$resource –

+15

, $ संसाधन ("/ उपयोगकर्ता /: id", {'id': '@id'}, {अद्यतन: {विधि: 'डाल'}}); पुट के लिए चाल है। बस User.update (उपयोगकर्ता) या उपयोगकर्ता को कॉल करें। जिस तरह से आप User.save (उपयोगकर्ता) और उपयोगकर्ता करेंगे। $ $। –

0

उत्तर के लिए धन्यवाद। यह मेरे लिए भी अंत में काम किया। एक साइड नोट के रूप में, मैं .NET WEB API का उपयोग कर रहा था और मेरी इकाई में एक आईडी प्रॉपर्टी है (अप्पर केस "I")। रख दिया और काम को हटाने के बाद ही मैं निम्नलिखित प्रयोग किया है:

$scope.Users = $resource("http://localhost/users/:Id",{Id:'@Id'}); 

आशा है कि यह मदद करता है।

+1

.NET का उपयोग इस पर प्रभाव नहीं डालेगा कि आपको '{Id: '@ Id'} जोड़ने की आवश्यकता है या नहीं। – Arion

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