Используйте
$resourcevar app = angular.module('myApp', []);
app.config(['$routeProvider', '$locationProvider', function($routeProvider, $locationProvider){
$routeProvider
.when('/', {
templateUrl:'template/home.html',
controller:'UsersCtrl'
})
.when('/edit/:userId', {
templateUrl:'template/edit.html',
controller:'EditCtrl'
})
.otherwise({
redirectTo: '/'
});
}]);
// Создаем фабрику для работы с ресурсом пользователей
app.factory('UserResource', function ($resource){
// Возвращаем ресурс, ссылка на документацию выше
return $resource(
'/test/users/:action', // роут для работы
{id: '@id'}, // поле идентификатор
{
update: { // переопределим метод update
method: 'PUT', // тип запроса
params: {action: 'edit'} // параметр action в роуте
},
}
);
});
// Контроллер списка пользователей
app.controller('UsersCtrl', function ($scope, UserResource) {
// запрос на список пользователей
$scope.users = UserResource.query();
});
// Контроллер редактирования пользователя
app.controller('EditCtrl', function ($scope, UserResource, $routeParams) {
// Загружаем текущего пользователя по ид из роута
$scope.user = UserResource.get({id: $routeParams.userId});
// Функция сохранения пользователя, form - объект формы
$scope.saveUser = function(form){
// Вызываем переопределенный метод update
UserResource.update($scope.user)
.$promise
// Ловим ошибки
.catch(function(err){
console.error(err);
});
};
});
Содержимое template/home.html
<ul>
<li ng-repeat="user in users"><a href="/edit/{{user.id}}">{{user.name}}</a></li>
</ul>
Содержимое template/edit.html
<form class="form" name="form" ng-submit="saveUser(form)" novalidate>
<input type="text" ng-model="user.name">
<button class="btn btn-default" type="submit" ng-disabled="form.$invalid">Сохранить</button>
</form>
index.html
<!DOCTYPE html>
<html lang='en' ng-app='myApp'>
<head>
<meta charset="utf-8">
<title>Angular App</title>
<script src='https://ajax.googleapis.com/ajax/libs/angularjs/1.6.0/angular.min.js'></script>
<script src='https://ajax.googleapis.com/ajax/libs/angularjs/1.6.0/angular-route.min.js'></script>
<script src='app/app.js'></script>
</head>
<body>
<ng-view></ng-view>
</body>
</html>
UPD: Добавлена форма
UPD2: Добавил комментарии
UPD3:
https://plnkr.co/edit/LTTkrd3NbSSxC7ZKw9GJ?p=preview