So che è stato chiesto molto tempo fa, ma vale la pena dare una risposta dato che ho trovato questa domanda in Google mentre cercavo personalmente una risposta. Ho pensato alla soluzione quindi sono tornato qui per condividerlo. Due anni e "visibile" continuano a non funzionare **, quindi ho controllato "se" vincolante. Il collegamento dei dati all'interno dell'elemento opzionale lo rendeva nascosto ma selezionabile. Knockout ha anche qualcosa chiamato: "sintassi del flusso di controllo senza container".
questo funziona per me:
<!-- ko if: category.parent == 0 -->
<option data-bind="value: category.name, text: category.name"></option>
<!-- /ko -->
Funziona perché se nasconde DOM. Dal sito Web a eliminazione diretta:
se riproduce un ruolo simile alla rilegatura visibile. La differenza è che , con visibile, il codice contenuto rimane sempre nel DOM e ha sempre applicato gli attributi dati-bind - il legame visibili solo utilizza CSS per alternare visibilità nell'elemento contenitore. Se legando, , tuttavia, aggiunge o rimuove fisicamente il markup contenuto nel DOM, e applica i collegamenti ai discendenti solo se l'espressione è vera.
Si può leggere di più nella documentazione: http://knockoutjs.com/documentation/if-binding.html
Controlla varie opzioni qui: http://jsfiddle.net/v8gyG/24/
** "visibile" funziona in Chrome 27 e Firefox 21, ma non con la selezione multipla in Chrome.
<!-- ko if: -->
funziona anche in IE 10 e con multiselect in Chrome.
fonte
2013-06-02 21:23:58