Ho un elenco a discesa di categorie che controlla un elenco a discesa di sottocategoria. Voglio nascondere l'elenco a discesa delle sottocategorie se l'array della sottocategoria è vuoto per la categoria selezionata.knockout js 'con' binding, hide se array è vuoto
codice di esempio riportato di seguito:
<script>
self.categories = ko.observableArray([
{"name": "top 1", "subcategories":[
{"name": "sub 1"},
{"name": "sub 2"}
]},
{"name": "top 2", "subcategories":[]}
]);
self.selected_category = ko.observable();
self.selected_sub_category = ko.obserable();
</script>
<div>
<select data-bind="options: categories, optionsText: "name", optionsCaption: "Select", value: selected_category"></select>
</div>
<div data-bind="with:selected_category">
<select data-bind="options: subcategories, optionsText: "name", optionsCaption: "Select", value: selected_sub_category"></select>
</div>
Grazie nemesv. C'è un modo per combinare il con e se in un attributo di data-bind. La ragione è che preferirei se il div non fosse reso affatto. –
Non è possibile combinare 'if' e' with' nell'attributo data-bind. Se lo provi, visualizzerai il seguente messaggio di errore: "Più associazioni (con e se) stanno tentando di controllare i collegamenti discendenti dello stesso elemento. Non è possibile utilizzare questi binding insieme sullo stesso elemento." Ma li sposti "fuori" vedi la mia risposta aggiornata. – nemesv