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

में कस्टम REST API प्रतिक्रिया /api/users/{id} के लिए यह निम्न स्वरूप में डेटा देता है:Backbone.js

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

मैं कैसे Backbone.js संग्रह और मॉडल के साथ इस एकीकृत कर सकते हैं? मुझे पता है कि Backbone.js एपीआई ऑब्जेक्ट डिक्ट्स या शुद्ध ऑब्जेक्ट dict की सरणी वापस करने की अपेक्षा करता है - क्या इसे बदलने का कोई तरीका है?

उत्तर

10

हां, वहां है। आप model.parse या collection.parse ओवरराइड कर सकते हैं। उदाहरण के लिए:

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

मुझे बहुत बचाओ, thx। – Kiddo