私は次のビューモデルを持っています:
var viewModel = {
List: ko.observableArray([ { Id: 1, Value: "Test 1" },
{ Id: 2, Value: "Test 2" },
{ Id: 3, Value: "Test 3" }
]),
// item with id "3" checked by default
Selected: ko.observableArray(["3"])
};
そしてビュー:
<div data-bind="text: Selected().length"></div>
<ul data-bind="foreach: List">
<li class="checkbox">
<label>
<input type="checkbox" name="SelectedGroups" data-bind="attr: { value: Id }, checked: $root.Selected()" />
<span data-bind="text: Value"></span>
</label>
</li>
</ul>
選択したアイテムの数を表示したいのですが、ノックアウトはチェックボックスの状態を変更する際にイベント リスナーをアタッチしません。計算されたプロパティを使用しようとしましたが、機能しません。
Selected
ただし、手動で (またはスクリプトから) アイテムを配列にプッシュまたはポップすると、すべてが機能します。私は何が欠けていますか?
たとえば、フィドルを参照してください。