2013-02-13 12 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} 
} 

Per /api/users/{id} restituisce i dati in formato seguente:personalizzato REST risposta api in Backbone.js

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

Come posso integrare questo con Backbone.js Raccolta e modello? So che Backbone.js si aspetta che api restituisca un array di oggetti dict o oggetto puro detto - c'è un modo per cambiarlo?

risposta

10

Sì, c'è. Si potrebbe ignorare model.parse o collection.parse. Ad esempio:

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

salvami molto, grazie. – Kiddo