Mam listę rozwijaną kategorii, która kontroluje listę rozwijaną podkategorii. Chcę ukryć listę rozwijaną podkategorii, jeśli tablica podkategorii jest pusta dla wybranej kategorii.nokaut js 'with' binding, ukryj jeśli tablica jest pusta
Przykładowy kod poniżej:
<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>
Dzięki nemesv. Czy istnieje sposób łączenia atrybutów zi if w jeden atrybut danych-wiązania. Powodem jest to, że wolałbym, gdyby div nie był w ogóle renderowany. –
'if' i' with' nie mogą być łączone w atrybucie związanym z danymi. Jeśli spróbujesz, otrzymasz następujący komunikat o błędzie: "Wiele powiązań (zi jeśli) próbuje kontrolować więzy potomne tego samego elementu. Nie możesz użyć tych powiązań razem na tym samym elemencie." Ale przenosisz je "na zewnątrz", zobacz moją zaktualizowaną odpowiedź. – nemesv