Observable Array があり、マッピング プラグインを使用して、サーバーからの json をマップします。json 構造は次のようになります。
Data: [{
NumberOfRooms: 5,
Category: 1
},
{
TruckDoorsNo: 5,
Category: 2
}]
このjsonには、さまざまなタイプのオブジェクトに関するデータが含まれており、カテゴリ値から、テンプレートに表示するものと表示しないものを決定します。
<div data-bind="foreach: Buildings">
<!-- ko if: Category === 1 -->
<input type="text" data-bind="value: NumberOfRooms" />
<select data-bind="value: Category">
<option value="1">Category1</option>
<option value="2">Category2</option>
</select>
<!-- /ko -->
<!-- ko if: Category === 2 -->
<input type="text" data-bind="value: TruckDoorsNo" />
<select data-bind="value: Category">
<option value="1">Category1</option>
<option value="2">Category2</option>
</select>
<!-- /ko -->
</div>
問題は、各項目のカテゴリが解析されたテンプレート内から変更される可能性があり、この変更が発生したときにテンプレートを更新する必要があることです。
このViewModelのノックアウトモデルがなく、サーバーから直接jsonをマッピングしています。
これを達成する方法は?カテゴリ プロパティを監視可能にしようとしましたが、これは何もしていません。
私は Knockout を使い始めたばかりで、それがフルパワーであることを認識していないことを付け加えなければなりません。