Sto creando un binding Knockout che funzionerà come un wrapper attorno a un widget jQuery. Questo widget applica i gestori di eventi agli elementi figlio. Sfortunatamente, la gestione degli eventi del widget viene applicata direttamente agli elementi figlio, non delegati. Il problema è che ho un bind di foreach
sullo stesso elemento, ma ho bisogno del bind personalizzato da applicare dopo il il bind di foreach
viene applicato.Modifica dell'ordine in cui vengono applicati i binding Knockout
Ovviamente, la cosa giusta è riparare il plugin jQuery, ma questa non è un'opzione al momento. Mi chiedo se ci sono delle buone soluzioni alternative per me. C'è modo, per esempio, di fare una delle seguenti cose?
- rilevare se un particolare legame è stato applicato
- influenzano l'ordine di applicazione
- vincolante sicura forzare un altro legame avvenire
Aggiornamento:
Un aspetto I dovrebbe menzionare che questa associazione personalizzata e il legame foreach
risiedono in un modello. Pertanto, le soluzioni che modificano direttamente il DOM non funzioneranno per me poiché modificheranno effettivamente il modello.
Grazie per la risposta. Ho effettivamente provato quello che hai fatto (usando 'applyBindingsToNode'), e sembra funzionare. Una complicazione che non ho menzionato prima è che il mio binding personalizzato è applicato a un template 'text/html'. Dopo aver eseguito 'applyBindingsToNode' con un' foreach', i nodi figli sono stati creati, ma sono stati inseriti in modo permanente nel DOM del modello, non nel DOM dell'istanza del modello, se sai cosa intendo. – Jacob
Dovresti usare un modello di associazione che non è un foreach, ma forse questo è quello che hai fatto? – Anders
Ho provato entrambi. In entrambi i casi, 'applyBindingsToNode' ha modificato il DOM all'interno del modello. – Jacob