2013-04-24 36 views
34

Tôi xem qua số Angular API để có tài nguyên $ và tôi không tìm thấy cách nào đó để gửi Request Body đến dịch vụ RESTful.

Tôi biết điều này có thể sử dụng phương pháp tiếp cận $ http, như here, vì vậy, bạn cũng có thể thực hiện bằng cách sử dụng $resource?

Rõ ràng đây là các tùy chọn cho $resource.

hành động - {string} - Tên hành động. Tên này trở thành tên của phương thức trên đối tượng tài nguyên của bạn.

phương pháp - {string} - Yêu cầu HTTP . Các phương thức hợp lệ là: GET, POST, PUT, DELETE và JSONP

params - {object =} - Tùy chọn các thông số được giới hạn trước cho hành động này.

isArray - {boolean =} - Nếu đúng thì đối tượng trả về cho hành động này là một mảng, xem phần trả về.

Hiện tại tôi không tìm thấy bất kỳ cách nào để gửi tải trọng yêu cầu chứa đối tượng JSON.

Trả lời

27

Chừng nào những hành động hỗ trợ nhắn cơ thể (ví dụ POST, nhưng không phải GET), bạn có thể vượt qua một tham số dữ liệu cho phương thức hoạt động của tài nguyên của bạn, mà sẽ được gửi trong cơ thể của các yêu cầu:

yourResource.save(yourData) 

Ví dụ: http://jsfiddle.net/N3NXK/1/

+2

Cảm ơn! Tôi đã nghĩ rằng chỉ các tham số bên trong {} mới được chấp nhận. –

+0

Điều này cũng cứu tôi .... Tôi đang làm việc với ServiceStack cố gắng POST ($ resource.save()) một đối tượng phức tạp mà $ resource serialized để truy vấn chuỗi parms hoạt động tốt cho SS để deserialize đối tượng phẳng nhưng rõ ràng không phức tạp. Fiddle của bạn đã cứu tôi !! – mmacneil007

+0

Tôi thực sự bối rối bởi jsFiddle bạn đã đăng. Nếu tôi nhìn vào trình gỡ rối chrome, phương thức được gọi là GET trên dây. Không góc làm cho rằng một POST theo mặc định để tiết kiệm? –

36

Xây dựng về câu trả lời @gargc 's, bạn có thể vượt qua các thông số và một cơ thể với phương pháp của tài nguyên:

myResource.save({ param: myParam }, myObject); 
Các vấn đề liên quan