假设我有一个待办事项应用程序并单击任何单个Todo上的复选框将其标记为完成并执行PUT操作。
然后有一个复选框''标记所有完整'或'标记所有不完整'。这应该标记每个todo已完成/不完整,无论其个人状态如何。
使用angular-resource
时,更新所有项目的最佳做法是什么。是否可以在单个批量请求中执行此操作并更新所有项目?或者我会更好地单独更新每一个?
答案 0 :(得分:4)
您可以通过提供自定义操作来扩展Angular资源,例如:
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'的POST并将所有引用的待办事项标记为已完成。