Esiste un modo per eseguire codice personalizzato dopo che Knockout ha aggiunto l'html al DOM e il rendering completato? Ho bisogno di questo in modo da poter associare un modello di visualizzazione nidificato al codice html aggiunto dinamicamente.afterRender per il collegamento html
Qualcosa di simile:
<div data-bind="html: dynamicHtml, afterRender: customCode"></div>
...
MyViewModel.prototype.customCode = function(){
ko.applyBindings(self.MyInnerViewModel(), document.getElementById('someTagInTheDynamicHtml'));
};
afterRender
non viene chiamato qui (funziona solo con il legame modello?), E un legame personalizzato non aiuta, perché il "update
" evento non è garantito di essere chiamato dopo che il DOM è stato aggiornato.
Grazie - funziona alla grande. Penso che dovrebbe iniziare con 'ab(). Html()', no? Inoltre, potresti refactoring il codice in un modo in cui le persone possono capire cosa sta succedendo ..? – seldary
No, ci dovrebbe essere 'ab(). Html'. È solo un controllo dell''esistenza vincolante * html * tra tutte le associazioni. Ho aggiornato la mia risposta con una spiegazione. –