2011-12-13 17 views
38

En mi aplicación, todo lo que hago con los datos se basa en la clave principal, ya que los datos se almacenan en la base de datos. Me gustaría obtener un modelo de una colección basada en esta clave.¿Cómo obtengo un modelo de una colección Backbone.js por su id?

El uso de Collection.at() requiere el índice de matriz, Collection.getByCid() requiere la identificación del cliente que la red troncal genera aleatoriamente.

¿Cuál es la mejor manera de obtener el modelo que quiero de la colección con el valor de identificación proporcionado? Me imagino que lo peor que podría hacer sería iterar sobre cada elemento, .get ('id') y devolver ese.

+7

¿No es el método get lo que estás buscando? http://documentcloud.github.com/backbone/#Collection-get – nikoshr

+0

¡Gracias! Le eché un vistazo a .get() porque estaba asumiendo que era parte de su almacén de clave/valor de atributos ... Si respondes la pregunta, puedo darte la respuesta. –

Respuesta

60

Tome un vistazo al método get, puede ser de alguna ayuda :)

http://backbonejs.org/#Collection-get

obtenercollection.get (id)
conseguir un modelo de una colección , especificado por un id, un cid o pasando un modelo.

+3

Te ahorraré un clic. La documentación completa allí es: Obtenga un modelo de una colección, especificado por un id, un cid o pasando un modelo. var book = library.get (110); – DOK

7

Si los datos requiere el uso de un tipo diferente de llave o un conjunto que no encajan bien con at(), getByCid() o get(), también hay where(). Algo como esto podría funcionar:

window.lib = new Library; 
window.lib.fetch([ 
    success: function(model, response) { 
     console.log(window.lib.where({'BookID':488, 'Rev':2, 'Status':'Active'}); 
    } 
}); 
Cuestiones relacionadas