如何通过AngularJS使用REST进行CRUD操作的最佳实践是什么?
特别是在这里,什么是“Angular-Way”。我的意思是使用最少的代码和最多的默认Angular设置来实现这一点。
我知道$resource及其默认操作。我不确定的是如何实现/命名端点以及使用哪些控制器。
对于这个例子,我想实现一个简单的用户管理系统,可以创建/更新/删除/列出用户。由于我自己实现了服务器端点,所以可以完全自由地以最符合Angular的方式进行操作。
我希望得到的答案类似于:
服务器端点:
GET /service/users -> array of users
GET /service/user/new -> return an empty user with default values which has no id
POST /service/user/new -> store a new user and create an id. return the saved user.
POST /service/user/:ID -> save an existing user. Return the saved user
DELETE /service/user/:ID -> delete an existing user
Angular服务:
.factory( 'User', [ '$resource', function( $resource ){
return $resource( '/service/user/:userId', { userId: '@id' } )
[...]
}])
路由:
.when( '/users', {
templateUrl: BASE + 'partials/user-list.html',
controller: 'UserListCtrl' } )
.when( '/user/new', {
templateUrl: BASE + 'partials/user-edit.html',
controller: 'UserNewCtrl' } )
.when( '/user/:userId', {
templateUrl: BASE + 'partials/user-edit.html',
controller: 'UserEditCtrl' } )
...
控制器:
UserListCtrl:
$scope.data = User.get(...)
UserNewCtrl:
$scope.user = User.get( { userId: "new" } )
...
请注意,我对于如何最好地完成这个任务并不感兴趣,我想知道的是Angular建议的方式(因为它可以使用大多数默认设置从而编写最少的代码)。编辑:我想要了解整体情况。我希望得到这样的回答:“如果你按照这种方式,并使用那个默认设置,你可以使用在线3个端点[...],2个路由[...]和2个控制器[...]来完成此任务。”