La transmisión de eventos desde vistas secundarias no funciona como se esperaba

Me gustaría usar el comportamiento burbujeante de las vistas de colección, pero parece que no funciona.

Un poco de contexto: muestro un modal AddPartFromPurchase que muestran una tabla poblada con un collectionView. Esto funciona bien.

Cuando el usuario hace clic en una fila, la vista de elementos activa la purchase:chosen evento por lo que de acuerdo con la documentación, espero que la vista de la colección reciba el itemview:purchase:chosen evento pero tal evento nunca se desencadena: ni en AddPartFromPurchase or Purchases. :(

Aquí está el código de ejemplo.

AddPartFromPurchase = Backbone.Marionette.ItemView.extend template: 'pages/vehicles/modifications/add_part_from_purchase' initialize: (atributos)-> @purchases = atributos.purchases onRender: -> view = new Compras(el: @$('tbody' ), colección: @purchases) @bindTo(ver, 'todo', @foo) view.render() foo: (evento, foo, bar, baz)-> console.log(evento, foo, bar, baz) Compra = Backbone.Marionette.ItemView.extend template: 'páginas/vehículos/modificaciones/compra' tagName: 'tr' events: 'click' : 'selectPurchase' selectPurchase: -> @trigger('purchase:chosen', @model) false serializeData: -> compra: @model part: @model.get('part') Compras = Backbone.Marionette.CollectionView.extend itemView: Compra inicializar: -> @bindTo(@, 'all', @foo) foo: ( evento, foo, bar, baz)-> console.log(evento, foo, bar, baz)


Tal vez lo estoy haciendo mal, me siento mal por definir al oyente en el onRender, pero como uso un el no puedo hacer eso en initialize.

¿Cómo puedo lidiar con eso?

preguntado el 12 de junio de 12 a las 09:06

qué versión de marionette estás usando v0.7.6 introdujo el evento burbujeante, y lo uso mucho... parece extraño que no te funcione. -

¡Buen punto! Ni siquiera me di cuenta de que Marionette ha evolucionado tanto (aparte de tu publicación reciente sobre 0.9). Estoy usando 0.7.4, así que probaré con 0.8.4. Gracias Derick. -

1 Respuestas

Respuesta basada en el flujo de comentarios: asegúrese de estar en v0.7.6 o superior, cuando se introdujo esta función.

Respondido el 12 de junio de 12 a las 21:06

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.