2012-05-07 15 views
5

Esto me ha aturdido por algún tiempo, pero logré seguir presionándolo. Lamentablemente, ha llegado el momento en que realmente necesito esto.¿EmberJS tiene un evento que se llama después de que se haya actualizado una vista de manubrio?

Mi pregunta es: ¿EmberJS/Manillar ofrece un evento que se llama cuando una vista se actualiza y se ve en el DOM?

Necesito usar este evento para ejecutar algunas cosas de jQuery como addClass, ordenable, etc. He intentado usar el plugin Live jQuery pero no funciona con manubrios. Además de eso, asumo que dicho evento ya está en marcha en algún lugar, simplemente no puedo encontrarlo.

Respuesta

7

¿Has echado un vistazo a los métodos willInsertElement, didInsertElement y willRerender en Ember.View? Además, hay muchas publicaciones aquí en S.O. que se ocupan de la integración de plugins y frameworks jQuery con Ember.

https://github.com/emberjs/ember.js/blob/master/packages/ember-views/lib/views/view.js#L1250-1267

edición/actualización

Después de un poco hacia atrás y cuarto en los comentarios, la solución final era utilizar Ember.run.next. Ver: http://jsfiddle.net/ud3323/SsRuX/

+0

Vi esos, el problema con estos eventos es que 'willInsertElement' y' didInsertElement' solo se llaman una vez cuando la vista se agrega al DOM usando 'appendTo', no cuando se actualiza. 'willRerender' realmente dispara, pero antes de agregar algo al DOM, hacer llamadas jQuery no hace nada. –

+0

¿Tendría enlaces a dichas publicaciones en StackOverflow? –

+0

¿Qué pasa con 'afterRender'? ¿Cómo se actualiza la vista? ¿Es un cambio de propiedad? Si es así, solo debes observar esa propiedad. ¿Es algún evento, como un evento de mouse? ¿Tienes algún código que puedas compartir? Realmente lo ayudará a apuntarle en la dirección correcta ... –

Cuestiones relacionadas