1

私は次のビューモデルを持っています:

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ただし、手動で (またはスクリプトから) アイテムを配列にプッシュまたはポップすると、すべてが機能します。私は何が欠けていますか?

たとえば、フィドルを参照してください。

4

1 に答える 1

1

()チェック済みバインディングにの追加セットがある場合は、次のように変更します。

data-bind="attr: { value: Id }, checked: $root.Selected"

このフィドルドキュメントを参照してください。

于 2012-10-13T14:37:06.243 に答える