Ho una casella di selezione in cui le opzioni e la selezione vengono gestite tramite Knockout.js. Voglio disegnare questo usando Materialise CSS.Reimposta Materialize.css casella di selezione dopo la rimozione dall'array di opzioni Knockout.js
Questo funziona correttamente per la visualizzazione iniziale della casella di selezione e quando le opzioni vengono aggiunte all'array osservabile 'options' di Knockout.js utilizzando il binding 'optionsAfterRender' per (ri) inizializzare dopo ogni opzione è stata aggiunta (sprecata , ma funziona).
Quando si rimuove un'opzione, Knockout.js non fornisce nulla di simile a "optionsAfterRender", quindi non esiste un modo ovvio per attivare una re-inizializzazione della magia Materialize CSS.
Domanda: Esistono opzioni non pazze che è possibile visualizzare?
Codice:
<select data-bind="
options: options,
optionsText: function(item) { return optionsText[item] },
value: displayedValue,
optionsAfterRender: function (option, item) {
setTimeout(function() {
$(option.parentElement).material_select();
}, 0);
}
">
</select>
(Il 'setTimeout' è necessario perché altrimenti l'opzione selezionata non viene raccolto.)
Io di solito chiamo '.material_select ('destroy');' prima di reiniziare per sicurezza.materializecss è un po 'giovane imho –
Grazie per una risposta perfettamente funzionante - che ha anche risolto il problema successivo che ho avuto, come re-init dopo le modifiche di valore nel modello KO! – gzost