2

当我 foreach 循环并将布尔值绑定到复选框时,复选框不会更新。

    function ViewModel() {
        var self = this;

        self.test = ko.observableArray([ false, false, false ]);

        return self;
    }

ko.applyBindings(new ViewModel());


<div data-bind="text: ko.toJSON(test)"></div>

<div data-bind="foreach: $root.test">
    <input type="checkbox" data-bind="checked: $data" />
</div>

您可以在 jsfiddle 上查看问题:http: //jsfiddle.net/KVWet/1/

4

1 回答 1

2

http://knockoutjs.com/documentation/checked-binding.html

如果您的参数解析为数组,则需要特别考虑。在这种情况下,如果值与数组中的某个项目匹配,KO 将设置要检查的元素,如果不包含在数组中,则不检查。

因为如果检查了一个项目,它的值就会被添加到一个数组中。如果没有检查,它就会把它拿走。我认为要使其正常工作,您需要将键添加到数组中,以便它可以与它所属的复选框匹配。一组布尔值不会帮助将其映射到其各自的复选框。

于 2013-01-27T04:17:13.960 回答