Bir alt kategori açılır listesini kontrol eden bir kategori aşağı açılır listem var. Alt kategori dizisi seçilen kategori için boşsa, alt kategoriler listesini gizlemek istiyorum. Aşağıdaknockout js 'with' bağlayıcı, dizi boşsa gizleyin
örnek kod:
<div data-bind="with: selected_category">
<!-- ko if: subcategories.length > 0 -->
<select data-bind="options: subcategories, optionsText: 'name',
optionsCaption: 'Select', value: $parent.selected_sub_category"></select>
<!-- /ko -->
</div>
Demo: Sen with
bağlayıcı if
(veya visible
) ile bağlayıcı birleştirmek gerekir
<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>
teşekkürler nemesv. Ile birleştirme ve bir veri-bağlama özniteliğine bir yolu var mı. Bunun nedeni, eğer div hiç işlenmemiş olsaydı onu tercih ederim. –
"if" ve "with", veri bağlama özniteliğinde birleştirilemez. Bunu denerseniz, aşağıdaki hata iletisini alırsınız: "Birden çok bağlama (ve varsa), aynı öğenin alt sıra bağlarını denetlemeye çalışıyor. Bu bağları aynı öğe üzerinde birlikte kullanamazsınız." Ama onları "dışarıda" hareket ettirin benim güncellenmiş cevabımı görün. – nemesv