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

これにより、属性が変更された /users/1 への PUT が発生することが予想されます。ただし、代わりに /users への POST であり、新しいユーザーを作成します (新しい名前と新しい ID を使用)。

私が間違っていることはありますか?

AngularJS v1.0.5
4

2 に答える 2

8

$ resourceに、route-parameter ":id"をJSONオブジェクトにバインドする方法を伝える必要があります。

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

これはうまくいくはずです、よろしく

于 2013-03-04T00:51:53.670 に答える