2013-05-05 33 views
12

Tôi thích cách thức phương thức query() trả về một mảng tài nguyên, có thể được lưu vào máy chủ một lần nữa.
Tôi đang cố gắng sử dụng Góc đối với mô-đun Drupal RestWS, trả về một đối tượng có nhiều thuộc tính "meta" và thuộc tính được gọi là danh sách nơi dữ liệu thực được lưu trữ. Có cách nào để nói với tài nguyên để lấy mảng đó thay thế?Angularjs resource query() mảng kết quả dưới dạng thuộc tính

Ví dụ: GET author.json lợi nhuận:

first: "http://dgh/author?page=0" 
last: "http://dgh/author?page=0" 
list: [{id:1, type:author, uid:{uri:http://dgh/user/1, id:1, resource:user}, created:1367770006,…},…] 
self: "http://dgh/author" 

Trả lời

20

Với phiên bản mới nhất kiễu góc (1.1.2 hoặc mới hơn), bạn có thể cấu hình các tài nguyên với một transformResponse:

var MyResource = $resource(
    '/author.js', 
    {}, 
    { 
     'get': { 
      method: 'GET', 
      transformResponse: function (data) {return angular.fromJson(data).list}, 
      isArray: true //since your list property is an array 
     } 
    } 
); 
+0

điều này có vẻ đầy hứa hẹn, nhưng tôi không thể làm cho nó hoạt động, tôi tiếp tục nhận 'TypeError: Object # không có phương thức 'push''. Tôi nghĩ rằng nó là một vấn đề tôi thường có khi một đối tượng được trả về cho một phương thức có isArray: true. BTW, là phiên bản mới được ghi lại ở đâu đó? – mojzis

+1

Hmm, ok. Tôi sẽ xem tôi có thể sửa nó trong JSFiddle không. Các tài liệu có tại đây: http://code.angularjs.org/1.1.4/docs/api/ngResource.$resource, nhưng transformResponse không phải là tài liệu tốt: ( –

+0

Tôi đã thay đổi mã một chút. là một ví dụ làm việc: http://jsfiddle.net/59nhp/ (với các dữ liệu khác, do đó, nó không phải là chức năng biến đổi tương tự) –

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