У меня есть раскрывающийся список категории, который управляет выпадающим списком под категории. Я хочу скрыть раскрывающийся список подкатегорий, если массив подкатегорий пуст для выбранной категории.knockout js 'with' binding, hide if array is empty
Пример кода ниже:
<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>
Благодаря nemesv. Есть ли способ объединить с и если в один атрибут привязки данных. Причина в том, что я предпочел бы, чтобы div не был вообще рендерингом. –
'if' и' with' не могут быть объединены в атрибут привязки данных. Если вы попробуете, вы получите следующее сообщение об ошибке: «Несколько привязок (с и если) пытаются контролировать привязки потомков одного и того же элемента. Эти привязки нельзя использовать вместе с одним и тем же элементом». Но вы перемещаете их «снаружи» в мой обновленный ответ. – nemesv