2012-03-26 1 views
8

Tengo una colección donde tiene un evento que se dispara cuando se agrega un modelo. He leído en los documentos donde debería tener un parámetro de opciones pero no puedo acceder a él. Básicamente quiero encontrar el índice en el que se encuentra el modelo en la colección. Dentro de mi colección tengo esto.Backbone add event

initialize: function() { 
     this.bind('add', this.onModelAddedd, this); 
    }, 

    onModelAddedd: function(model, options){ 

      console.log("options = ", options); 
    } 

Respuesta

23

La documentación es un poco confusa sobre esto por lo que su confusión es comprensible. Desde el fine manual:

Catálogo de Eventos

He aquí una lista de todas las opciones integradas en eventos que pueden disparar Backbone.js. También puede activar sus propios eventos en Modelos y Vistas como mejor le parezca.

  • "añadir" (modelo, colección, opciones) - cuando se añade un modelo a una colección.
  • ...

Así que el segundo argumento al manejador add es la propia colección. El omnipresente options que estás buscando es siempre el último argumento por lo que desea esto:

onModelAddedd: function(model, collection, options) { 
    console.log("options = ", options); 
} 

Demo (abrir la consola por favor): http://jsfiddle.net/ambiguous/Das2t/

la options argumento final se implica para ser el último argumento a lo largo de la documentación, pero no está explícitamente explicado en ninguna parte.

+4

después de todo este tiempo, todavía aprendo cosas nuevas ... no sabía sobre el parámetro de opciones para esos eventos. gracias mu! :) –

+2

@DerickBailey: Es por eso que estamos aquí, ¿no? Aprendí una buena parte de mi conocimiento sobre Backbone, PostgreSQL, Ruby y CoffeeScript respondiendo preguntas aquí. –

+0

Guau, mantengo la página Backbone doc abierta todo el día mientras escribo el código, me refiero a ella todos los días, y de alguna manera nunca he visto la sección "Catálogo de eventos" :) ¡Gracias! –