Như đã nêu trong tài liệu hướng dẫn $resourceparamDefaults
:
Cho một mẫu/path /: động từ và tham số {động từ: 'chào', chào: 'Hello'} kết quả trong URL/path/greet? salutation = Xin chào.
Nếu giá trị tham số được bắt đầu bằng @ thì giá trị cho rằng tham số sẽ chiết xuất từ các tài sản tương ứng trên đối tượng dữ liệu (được cung cấp khi gọi một phương pháp hành động). Ví dụ, nếu đối tượng defaultParam là {someParam: '@someProp'} thì giá trị của someParam sẽ data.someProp
Điều này cho thấy bất kỳ động từ quy định tại các url parameterizd phù hợp với các phím được định nghĩa trong các tham số mặc định của tham số $resource
hoặc các tham số lớp $resource
(get, save, etc ..) sẽ có giá trị tương ứng của khóa đó thay thế động từ trong url. Các ký hiệu '@' trên Mặt khác, đã không giải thích đúng cách trong bối cảnh này, nó cần phải có được:
Nếu giá trị tham số được bắt đầu bằng @ thì giá trị cho rằng tham số sẽ được trích xuất từ tương ứng thuộc tính trên đối tượng dữ liệu (được cung cấp khi gọi phương thức hành động dụ).
phương pháp hành động Instance ($ nhận được, $ tiết kiệm, $ xóa, vv ..), là phương pháp được sử dụng cho các đối tượng dữ liệu lấy ra sử dụng phương pháp $resource
vụ kiện tập thể. Đây thường là hữu ích khi chuỗi yêu cầu với cùng một tài nguyên.
EXAMPLE DEMO
Giả sử rằng cars/abc
của bạn trả về một json phản ứng của:
{
"id": "abc"
}
Đọc các ý kiến cho thấy sự phản ứng của từng phương pháp hành động gọi.
var myCarResource = $resource('cars/:carId',
{
carId:'@id'
});
// This sends a GET request '/cars/?id=abc
myCarResource.get({id:'abc'});
// This sends a GET request '/cars/abc'
myCarResource.get({carId:'abc'}); // returns {"id": "abc"}
myCarResource.get({carId:'abc'}).$promise.then(function(car) {
// sends a POST request '/cars/abc', it replaces the :carId verb from the
// @id notation you have defined in the parameter default. It also sends,
// other parameter defaults defined with '@' that are defined as verbs in the url.
car.$save();
});
Có thể điều này có thể giúp http://stackoverflow.com/questions/16677487/angularjs-resource-builds-wrong-resource-url – Yalamber