2012-06-28 6 views

Respuesta

8

El resize event se envía a window:

El evento resize se envía al elemento window cuando el tamaño de la ventana del navegador cambia

Pero los acontecimientos de una vista Backbone están obligados a la vista de el usando delegate. La vista el no obtendrá un evento resize por lo que poner 'resize articule': 'repositionBoards' en el events de su vista no servirá de nada.

Si usted necesita para obtener el evento resize en su opinión, que tendrá que obligar a éste a window mismo:

initialize: (options) -> 
    $(window).on('resize', this.repositionBoards) 
remove: -> 
    $(window).off('resize', this.repositionBoards) # Clean up after yourself. 
    @$el.remove() # The default implementation does this. 
    @ 
repositionBoards: -> 
    # Use => if you need to worry about what `@` is 
    board.align() 

También tenga en cuenta la adición de una remove para que pueda desvincular el controlador resize. Por supuesto, querrá usar view.remove() para eliminar su vista o simplemente no se preocupe si esa vista es su aplicación completa.

+0

Gracias por la respuesta completa. Mi única preocupación es que los tamaños de mis artículos cambien cuando se ingresa texto en ellos. Cuando el tamaño se expande, quiero llamar a tablas de reposicionamiento. Pero dado que el tamaño se envía a la ventana, esto no me sirve de nada. ¿Sabes si hay algún evento que pueda estar relacionado con el cambio de tamaño de un artículo o div? Justo cuando se expande como cuando aumenta la altura o el ancho. Gracias de nuevo. –

+0

@ user1489926: Pero no hay evento de cambio de tamaño en otra cosa que no sea la ventana, AFAIK tienes que hacerlo de la manera difícil: http://stackoverflow.com/q/172821/479863 –

Cuestiones relacionadas