La risposta breve è che non è supportato. La lunga risposta è che ci sono alcuni modi per aggirarla. Un modo è chiamare cleanNode
prima del applyBindings
, ma questo non cancella i gestori di eventi. Un altro modo è quello di avvolgere il tuo modello di vista in un osservabile e quindi aggiornare quello osservabile per riapplicare i collegamenti; questo funziona molto meglio, ma ha ancora un piccolo problema (vedi sotto).
Ecco il vostro esempio utilizzando il metodo osservabile vista del modello: http://jsfiddle.net/mbest/9UcUs/9/
L'unico problema che ho trovato con l'utilizzo di una vista del modello osservabile è che i gestori di eventi non sono completamente aggiornati con il nuovo modello di vista. Chiameranno la funzione corretta nel nuovo modello di vista, ma i valori this
e data
saranno per il modello di visualizzazione originale.
Modifica:
Knockout 3.0 (attualmente previsto in uscita questo mese) supporta pienamente modelli vista osservabili. Potrebbero esserci ancora problemi con i binding personalizzati, ma speriamo che tutto questo verrà presto documentato.
fonte
2012-09-07 10:50:16
Questo potrebbe non rispondere a una domanda direttamente, ma un approccio più standard con knockout è quello di associare il modello di vista e quindi modificare i contenuti del modello piuttosto che modificare l'intero modello ogni volta. Vedi http://jsfiddle.net/9UcUs/8/ per un esempio. –
Il codice pertinente dovrebbe sempre essere *** *** nella domanda, non solo collegato (nemmeno jsFiddle). –