2013-03-03 2 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"} 

Я ожидаю, что это приведет к PUT to/users/1 с измененным атрибутом. Но это вместо POST для/users и создает нового пользователя (с новым идентификатором вместе с новым именем).

Есть ли что-то, что я делаю неправильно?

AngularJS v1.0.5 

ответ

8

вам просто нужно сказать $ ресурс, как он должен связать маршрут-параметр «: ИД» с JSON объект:

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

Это должно работать, С уважением

+1

Спасибо, 90% там, это POSTs/users/1 теперь с обновленным пользователем. Но как сделать это PUT вместо POST? Очень близко. –

+0

Я думаю, это POST по дизайну. Мне придется переопределить «сохранить» на POST, когда это новый ресурс, и PUT, когда это обновление существующего ресурса. http://docs.angularjs.org/api/ngResource.$resource –

+15

ответить на мой вопрос о PUT вместо POST, $ resource ("/ users /: id", {'id': '@id'}, {обновление: {метод: 'PUT'}}); делает трюк для PUT. Просто позвоните пользователю User.update (пользователь) или пользователю. $ Update так, как вы бы пользователь User.save (пользователь) и пользователь. $ Save. –

0

спасибо за ответ. В конце концов это тоже помогло мне. В качестве побочного примечания я использовал .NET WEB API, а моя сущность имеет свойство Id (UPPER CASE «I»). Функция PUT и DELETE работала только после того, как я использовал следующее:

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

Надеется, что это помогает.

+1

Использование .NET не повлияет на то, нужно ли добавить '{Id: '@ Id'}' – Arion

Смежные вопросы