2012-04-30 34 views
11

Tôi có loại tài nguyên này: var Products = $resource('companies/:companyId/products') Vấn đề là tôi muốn lấy sản phẩm của tất cả các công ty theo url companies/products, nhưng sử dụng tài nguyên và không cung cấp companyId Tôi nhận được companies//products. Có lẽ tôi có thể sử dụng một url khác, giống như chỉ /products, nhưng có nghĩa là tôi phải có một tài nguyên khác cho cùng một điều?Tham số url tùy chọn trong AngularJs Resource

Trong trường hợp đơn giản này, tôi có thể thay đổi url thành companies/products/:companyId, nhưng có vẻ như đây là trường hợp khá chung chung.

Trả lời

13

Có, hiện tại bạn cần xác định một tài nguyên $ khác.

Nhưng bạn có thể quấn nhiều trường hợp của $ nguồn thành một dịch vụ duy nhất nếu bạn muốn ...

app.factory('mergedRes', function($resource) { 
    var r1 = $resource('/companies/:companyId/products'); 
     r2 = $resource('/companies/products'); 

    r1.getAll = r2.query.bind(r2); 

    return r1; 
}); 
+0

gì nếu bạn muốn chuỗi 3 nguồn khác nhau, làm thế nào sẽ trông như thế nào? – abstractpaper

+0

Tôi đã thử giải pháp này nhưng vẫn hiển thị '/ companies // products' của r1 ngay cả khi' companyId' trống. – abstractpaper

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