2013-02-13 34 views
5
My REST api returns data in json in following format for `/api/users`: 

{ 
    "objects":[ 
     {"User":{"id":"1","created":"2013-02-13 09:22:42","modified":"2013-02-13 09:22:42","username":"[email protected]","role":"admin"}}, 
     {"User":{"id":"2","created":"2013-02-13 09:22:55","modified":"2013-02-13 09:22:55","username":"[email protected]","role":"analyst"}}, 
     {"User":{"id":"3","created":"2013-02-13 09:23:02","modified":"2013-02-13 09:23:02","username":"[email protected]","role":"moderator"}}, 
     {"User":{"id":"4","created":"2013-02-13 09:23:10","modified":"2013-02-13 09:23:10","username":"[email protected]","role":"representative"}} 
     ], 
    "meta": 
     {"page":1,"pageCount":1,"prevPage":false,"nextPage":false,"limit":20,"count":4,"sort":null,"direction":null} 
} 

Đối /api/users/{id} nó sẽ trả về dữ liệu ở định dạng sau:Tuỳ chỉnh REST của phản ứng api trong Backbone.js

{"User":{"id":"1","created":"2013-02-13 09:22:42","modified":"2013-02-13 09:22:42","username":"[email protected]","role":"admin"} 

Làm thế nào tôi có thể tích hợp này với Backbone.js Bộ sưu tập và mẫu? Tôi biết Backbone.js hy vọng api sẽ trả về mảng các đối tượng dicts hoặc dict đối tượng thuần túy - có cách nào để thay đổi nó không?

Trả lời

10

Có, có. Bạn có thể ghi đè model.parse hoặc collection.parse. Ví dụ:

var UserCollection = Backbone.Collection.extend({ 
       model: User, 
       url: '/api/users', 
       parse: function(response) { 
         // process response.meta when necessary... 
         return response.objects; 
        }); 
       } 
      }); 

var UserModel = Backbone.Model.extend({ 
       //... 
       parse: function(response) { 
         return response.User; 
        }); 
       } 
      }); 
+0

lưu tôi rất nhiều, thx. – Kiddo