2013-06-18 27 views
8

Giả sử tôi có một ứng dụng cần làm và nhấp vào hộp kiểm trên bất kỳ Todo cá nhân nào đánh dấu nó là hoàn thành và thực hiện thao tác PUT.Tài nguyên góc có thể thực hiện hoạt động yên tĩnh không?

Sau đó, có hộp kiểm để 'đánh dấu tất cả là hoàn thành' hoặc 'đánh dấu tất cả chưa hoàn thành'. Điều này sẽ đánh dấu mọi việc cần làm là hoàn thành/không đầy đủ, bất kể trạng thái cá nhân của nó là gì.

Khi sử dụng angular-resource, cách thực hành tốt nhất để cập nhật tất cả các mục là gì. Có thể thực hiện nó trong một yêu cầu hàng loạt và có tất cả các mục được cập nhật không? Hoặc tôi sẽ tốt hơn hết chỉ cập nhật từng cá nhân?

+0

Loại phụ thuộc vào API, phải không? Bạn có thể gửi tất cả bằng cách sử dụng một yêu cầu $ http, nếu API hỗ trợ tải hàng loạt như vậy. Nếu không, bạn có thể lặp lại các mục và thực hiện .update() trên mỗi mục. – finishingmove

+0

Điều đó nghe giống như một loại đối tượng/dịch vụ khác. Tôi muốn tạo một dịch vụ khác gọi là TodoBulkService và mở rộng nhà máy để xử lý các hành động hàng loạt. –

+0

Các api có thể xử lý nó, hoặc có thể được thực hiện để xử lý nó. Giả sử rằng api là "lý tưởng" những gì cần phải được thực hiện trên góc cạnh, những gì hiện angular cần gửi đến API và những gì nó mong đợi để lấy lại? Tôi biết tài nguyên góc có thể có các hành động tùy chỉnh hoạt động trên cấp độ mảng, đó có phải là giải pháp khả thi không? –

Trả lời

4

Bạn có thể mở rộng nguồn góc của bạn bằng cách cung cấp một hành động tùy chỉnh, ví dụ:

var Todo = $resource('api/todo/:todo_id', {todo_id: '@id'}, { 
    markAllComplete: { method: 'POST', params: { complete: true }, isArray: true } 
} 

và sau đó trong điều khiển của bạn thực hiện:

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

Điều duy nhất (và có lẽ điều khó khăn nhất) còn lại để làm sẽ được mã phụ trợ của bạn để chấp nhận một POST để 'api/todo' và đánh dấu tất cả các todos tham chiếu như hoàn thành.

+0

Điều này không an toàn. Đó là rpc. – bruno

Các vấn đề liên quan