2011-12-01 19 views
6

He configurado una colección backbone para Users y cuando ejecuto el método fetch, obtengo un objeto JSON en la línea de: {"users": [{...}, {...}, ...], size: number} del servidor. Confusamente, cuando ejecuto el código de abajo, en vez de conseguir cada user objeto, aparece un único objeto "niño", que tiene dos atributos : usuarios y tamaño; ¿Alguien puede ayudarme a entender por qué? Gracias.Iterating Backbone Collection

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

Respuesta

7

Añadir un método en la colección llamada de análisis:

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

Esto tiene mucho sentido para mí. Mire el JSON: tiene dos propiedades: usuarios y tamaño.

Probablemente sólo quiere iterar sobre collection.users:

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

Como alternativa, simplemente asigna a collectionfoo.users en lugar de foo (donde foo es el objeto creado mediante el análisis del JSON devuelto).