Se devo conservare vista in window.myView
variabile, renderla, quindi chiamare in javascript console:Perché gli eventi di Backbone sulla sostituzione di html non funzionano?
$('#container').html('')
e quindi chiamare:
$('#container').html(window.myView.$el)
eventi Bound smetteranno di funzionare.
Sono abbastanza sicuro che dovrebbe essere così, ma:
- esattamente perché funziona in questo modo?
- come re-render sottoparte vista senza perdita di binding di eventi?
- perché chiamare
myView.render()
non perderà i binding di evento?
Aggiornamento:
Trovato this articolo. È questa la ragione?
Assicurarsi jQuery non sta scaricando gli eventi quando non si desidera che
Se si sta costruendo un app in cui si crea una vista in tempo reale e di collegare/li rimuove al DOM voi, potrebbe avere un problema Ogni volta che rimuovi una vista dal dom, jQuery scarica tutti gli eventi. Quindi non puoi avere un riferimento a una vista e rimuoverlo dal dom e quindi ricollegarlo in un secondo momento. Tutti i tuoi eventi sarebbero stati scaricati. Se vuoi mantenere le viste, un'idea migliore è nasconderle usando display: none. Tuttavia, non dovresti abusare di ciò e riciclare viste che non utilizzerai per un po '(e prevenire perdite di memoria).
Grazie per questa domanda. Ho avuto un problema simile con Spine e non riuscivo a capire cosa stesse succedendo. –