2011-12-01 36 views
6

Ho impostato una collezione backbone per Users e quando eseguo il metodo di recupero, torno a un oggetto JSON lungo le linee di: {"users": [{...}, {...}, ...], size: number} dal server. Confusamente, quando eseguo il codice qui sotto, invece di ottenere ogni oggetto user, ottengo un unico oggetto "figlio", che ha due attributi : utenti e dimensioni; qualcuno può aiutarmi a capire perché? Grazie.Iterating Backbone Collection

display: function(){ 
    this.collection.each(function(user){ 
    console.log("main", user); 
    }); 
} 

risposta

7

Aggiungere un metodo per la raccolta denominata parse:

var collection = new Backbone.Collection({ 
    parse: function(response) { 
     return response.users; 
    } 
}); 
4

Questo ha perfettamente senso per me. Guarda il JSON: ha due proprietà: utenti e dimensioni.

probabilmente si desidera solo per iterare collection.users:

display: function(){ 
    this.collection.users.each(function(user){ 
    console.log("main", user); 
    }); 
} 

In alternativa, basta assegnato collection-foo.users invece di foo (dove foo è l'oggetto creato da analisi del JSON restituita).