7
サブカテゴリのドロップダウンリストを制御するカテゴリドロップダウンリストがあります。選択したカテゴリのサブカテゴリ配列が空の場合は、サブカテゴリのドロップダウンリストを非表示にします。以下knockout js 'with binding、配列が空の場合は非表示
サンプルコード:
<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>
デモ:あなたはwith
が結合if
(またはvisible
)との結合を組み合わせる必要が
<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。 withとifを1つのデータバインド属性に結合する方法はありますか?その理由は、divがレンダリングされていない場合、私はそれを好むでしょう。 –
'if'と' with'はデータバインド属性で結合できません。 "複数のバインディング(withとif)が同じ要素の子孫バインディングを制御しようとしていますが、同じ要素でこれらのバインディングを一緒に使用することはできません。"というエラーメッセージが表示されます。しかし、あなたは私の更新された答えを見て "外に"それらを移動します。 – nemesv