// 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"}
我期望這會導致PUT到/用戶/ 1與更改屬性。但是它改爲POST給/ users,並創建一個新用戶(帶有一個新的id以及新的名稱)。
有什麼我做錯了嗎?
AngularJS v1.0.5
謝謝你,90%在那裏,它現在發佈到/ users/1與更新的用戶。但是現在如何讓它變成PUT而不是POST呢?很接近。 – 2013-03-04 01:43:52
我想這是設計的POST。當它是一個新資源時,我將不得不重寫「保存」到POST,並且當它是對現有資源的更新時。 http://docs.angularjs.org/api/ngResource.$resource – 2013-03-04 03:56:23
回答我關於PUT而不是POST的問題,$ resource(「/ users /:id」,{'id':'@id'}, {更新:{方法: 'PUT'}});爲PUT做訣竅。只需以User.save(user)和user。$ save的方式調用User.update(user)或user。$ update。 – 2013-03-04 19:13:28