2012-05-29 10 views
6

Ho diversi knockoutjs per i binding dei modelli che creano circa 100 <div class='item' /> in diverse posizioni in tutta la mia pagina - tutto funziona perfettamente eccetto che le mie successive chiamate jQuery non funzionano a meno che non mi fermi nel debugger e attenda un secondo prima che vengano applicate le associazioni jquery :Knockout.js: ko.applyBindings (viewModel) -> c'è un evento completo per applyBinding?

ko.applyBindings(viewModel); 

$(".item").draggable(); 

ero alla ricerca di un evento databound che ho potuto usare per applicare i miei attacchi DOPO il ViewModel è stata legata, ma non trovo nulla.

+0

Avete considerato l'associazione 'afterRender'? – Tyrsius

+0

Siamo spiacenti, era fuori per il fine settimana! Sì, prendo afterRender come viene chiamato per ogni oggetto reso. Qui è dove l'oggetto reso è reso trascinabile. Grazie! – Eulinky

risposta

1

Come menziona Tyrsius è possibile utilizzare il gestore afterRender, è inoltre possibile utilizzare il gestore afterAdd a seconda se si desidera aggiungere/rimuovere elementi dall'elenco. Questi sono coperti da entrambi i documenti vincolanti foreach e template.

Si potrebbe anche scrivere il proprio binding personalizzato per fare lo stesso, simile a this example. Lo consiglio come opzione più manutenibile e riutilizzabile, ma a volte è eccessivo.

Detto questo, se si desidera utilizzare trascinabile, c'è già uno great custom binding che è possibile adattare.

Spero che questo aiuti.

+0

Grazie per la risposta, sembra che non ci sia davvero nessun altro evento. Come accennato in precedenza, utilizzo afterRender per ora che sembra abbastanza semplice per ora. Ma ho inserito un segnalibro per il progetto ordinabile ad eliminazione diretta perché ne avrò bisogno abbastanza presto :). – Eulinky

Problemi correlati