Angularjs angular resource可以执行大容量restful操作吗?

Angularjs angular resource可以执行大容量restful操作吗?,angularjs,angular-resource,Angularjs,Angular Resource,假设我有一个todo应用程序,单击任何单个todo上的复选框将其标记为完成,并执行PUT操作 然后有一个复选框“标记全部完成”或“标记全部未完成”。这应该将每个todo标记为已完成/未完成,无论其个人状态如何 使用角度资源时,更新所有项目的最佳实践方法是什么。是否可以在一个批量请求中完成并更新所有项目?或者我最好单独更新每一个动作?您可以通过提供自定义动作来扩展角度资源,例如: var Todo = $resource('api/todo/:todo_id', {todo_id: '@id'},

假设我有一个todo应用程序,单击任何单个todo上的复选框将其标记为完成,并执行PUT操作

然后有一个复选框“标记全部完成”或“标记全部未完成”。这应该将每个todo标记为已完成/未完成,无论其个人状态如何


使用
角度资源
时,更新所有项目的最佳实践方法是什么。是否可以在一个批量请求中完成并更新所有项目?或者我最好单独更新每一个动作?

您可以通过提供自定义动作来扩展角度资源,例如:

var Todo = $resource('api/todo/:todo_id', {todo_id: '@id'}, {
  markAllComplete: { method: 'POST', params: { complete: true }, isArray: true }
}
然后在控制器中执行以下操作:

// Assuming your todos have been fetched and are stored
// in the $scope.todos variable...
Todo.markAllComplete($scope.todos);

剩下要做的唯一一件事(也可以说是最难的事)是编写后端代码,以接受“api/todo”的帖子,并将所有引用的todo标记为已完成。

这取决于api,不是吗?如果API支持这样的批量加载,那么您可以使用一个$http请求发送它们。否则,您可以在项目上循环并对每个项目执行.update()。这听起来像是不同类型的对象/服务。我将创建一个名为TodoBulkService的不同服务&扩展工厂以处理批量操作。api可以处理它,也可以让api来处理它。假设api是“理想的”,那么在angular方面需要做什么,angular需要向api发送什么,它希望得到什么?我知道angular resource可以在阵列级别执行自定义操作,这是一种可能的解决方案吗?这不是restful。是rpc。